son-dh / mudim

Automatically exported from code.google.com/p/mudim
0 stars 0 forks source link

window.onload #39

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Hiện dùng window.onload, nên mudim phải đợi đến sau khi cả trang 
web load
xong, thì nó mới load.

Vấn đề:
* Nếu trang web có ảnh to hoặc link đến resource nằm ở trang web 
chậm khác
v.v. có thể xảy ra trường hợp phải đến vài phút sau khi vào 
trang web thì
mới gõ được tiếng Việt.
* Tái hiện: Bài "Nhập môn BDD" ở trang cntt.tv có flash link đến 
trang
amazon, khi trang này load lâu, sẽ thấy hiện tượng trên.

Giải pháp 1:
* Dùng sự kiện DOM ready thay cho window.onload. Tham khảo:
http://www.javascriptkit.com/dhtmltutors/domready.shtml
* Dùng giải pháp này thì phải thêm (1 đống?) mã vào mudim, có 
thể làm phình to.

Giải pháp 2:
* Khi trang web có dùng thư viện JS cao cấp (như jQuery, Prototype), 
thì
những thư viện này đều có sẵn event handler cho DOM ready.
* Nếu giải pháp 1 làm mudim phình to nhiều, nên chăng thiết kế 
mudim sao
cho có thể tận dụng những event handler sẵn có trên?

Original issue reported on code.google.com by ngocdaot...@gmail.com on 5 Jun 2008 at 3:18

GoogleCodeExporter commented 9 years ago
2 giải pháp trên cần viết khá nhiều code để đạt được 
cross-browser hoặc dựa vào thư
viện, có lẽ chưa tối ưu. Bản chất của vấn đề là chỉ 
cần gọi Activate() sớm hơn, vì
vậy hiện tại giải pháp được đưa vào thử nghiệm là ngay 
từ lúc include file js cứ 2
giây 1 lần lại Activate() trong khoảng 3 phút. Cách này chỉ cần 2 
dòng code, nghe thì
không được đẹp bằng xử lý DOM event nhưng về hiệu quả 
chắc cũng tương đương.

Original comment by mud...@gmail.com on 11 Jun 2008 at 7:06

GoogleCodeExporter commented 9 years ago
2 cách giải quyết:
1. Check nếu có jQuery, Mootools thì dùng ondomready. Nếu có thì dùng 
onload chứ biết
sao.
2. Viết các phiên bản khác nhau cho các thư viện khác nhau.

Original comment by hai...@gmail.com on 12 Jun 2008 at 8:55

GoogleCodeExporter commented 9 years ago
Cách đơn giản nhất vẫn là cho phép gọi hàm initialize mudim ở 
cuối cùng của trang
(trước /body), dĩ nhiên cách đấy ugly nhưng it works.

Original comment by huan...@gmail.com on 12 Jun 2008 at 5:30

GoogleCodeExporter commented 9 years ago
Đúng vậy, mấy hôm nay test thử cách thô thiển kia vẫn thấy 
ngon. Nó chỉ gọi 2s 1 lần
nên thực ra cũng không ảnh hưởng gì đến performance, browser nào 
cũng chạy tốt, và
không cần phụ thuộc vào thư viện nào.

Original comment by mud...@gmail.com on 13 Jun 2008 at 3:43

GoogleCodeExporter commented 9 years ago

Original comment by mud...@gmail.com on 30 Jun 2008 at 4:55