Điều gì xảy ra khi trình duyệt không thể tải javascript?

Hiệu suất JavaScript trong trình duyệt được cho là vấn đề quan trọng nhất về khả năng sử dụng mà các nhà phát triển phải đối mặt. Vấn đề phức tạp do tính chất chặn của JavaScript, nghĩa là không có gì khác có thể xảy ra trong khi mã JavaScript đang được thực thi. Trên thực tế, hầu hết các trình duyệt sử dụng một quy trình duy nhất cho cả cập nhật giao diện người dùng [UI] và thực thi JavaScript, do đó, chỉ có một quy trình có thể xảy ra tại bất kỳ thời điểm nào. JavaScript càng mất nhiều thời gian để thực thi thì càng mất nhiều thời gian trước khi trình duyệt có thể tự do phản hồi đầu vào của người dùng

Ở cấp độ cơ bản, điều này có nghĩa là chính sự hiện diện của một

2

3

Mặc dù mã này có vẻ vô thưởng vô phạt, nhưng nó thực sự có một vấn đề nghiêm trọng về hiệu năng. có ba tệp JavaScript đang được tải trong. Vì mỗi

2

Mã này đại diện cho vị trí được đề xuất cho

2

Mã này có một

2 duy nhất

Một

2

3, thứ tự của các cảnh báo là âdeferâ, âscriptâ và âloadâ. Trong các trình duyệt hỗ trợ 
4, thứ tự của các cảnh báo là âscriptâ, âdeferâ và âloadâ. Lưu ý rằng 
2 bị hoãn lại

6] để biết khi nào trang đã sẵn sàng khởi tạo

7 trực tiếp vào trang, do đó tránh được một yêu cầu HTTP khác. Ví dụ

8 để tải chức năng bổ sung lên trang khi cần

Khái niệm về một lượng nhỏ mã ban đầu trên trang, sau đó tải xuống chức năng bổ sung là cốt lõi của thiết kế YUI 3. Để sử dụng YUI 3 trên trang của bạn, hãy bắt đầu bằng cách bao gồm tệp hạt giống YUI

Tệp gốc có dung lượng khoảng 10 KB [6 KB được nén] và bao gồm đủ chức năng để tải xuống bất kỳ thành phần YUI nào khác từ Yahoo. CDN. Ví dụ: nếu bạn muốn sử dụng tiện ích DOM, bạn chỉ định tên của tiện ích đó [

9] bằng phương thức YUI 
YUI[].use["dom", function[Y]{
    Y.DOM.addClass[docment.body, "loaded"];
}];
0 và sau đó cung cấp lệnh gọi lại sẽ được thực thi khi mã sẵn sàng

YUI[].use["dom", function[Y]{
    Y.DOM.addClass[docment.body, "loaded"];
}];

Ví dụ này tạo một thể hiện mới của đối tượng

YUI[].use["dom", function[Y]{
    Y.DOM.addClass[docment.body, "loaded"];
}];
1 và sau đó gọi phương thức
YUI[].use["dom", function[Y]{
    Y.DOM.addClass[docment.body, "loaded"];
}];
0. Tệp hạt giống có tất cả thông tin về tên tệp và phần phụ thuộc, do đó, việc chỉ định
9 thực sự tạo một URL trình xử lý kết hợp với tất cả các tệp phụ thuộc chính xác và tạo phần tử tập lệnh động để tải xuống và thực thi các tệp đó. Khi tất cả mã có sẵn, phương thức gọi lại được gọi và phiên bản 
YUI[].use["dom", function[Y]{
    Y.DOM.addClass[docment.body, "loaded"];
}];
1 được chuyển vào làm đối số, cho phép bạn bắt đầu sử dụng chức năng mới được tải xuống ngay lập tức

Đối với một công cụ có mục đích chung hơn, Ryan Grove của Yahoo. Tìm kiếm đã tạo thư viện LazyLoad [có tại http. //github. com/rgrove/lazyload/]. LazyLoad là phiên bản mạnh mẽ hơn của hàm

YUI[].use["dom", function[Y]{
    Y.DOM.addClass[docment.body, "loaded"];
}];
5. Khi được thu nhỏ, tệp LazyLoad có kích thước khoảng 1. 5 KB [rút gọn, không nén]. Ví dụ sử dụng

4

LazyLoad cũng có khả năng tải xuống nhiều tệp JavaScript và đảm bảo rằng chúng được thực thi theo đúng thứ tự trong tất cả các trình duyệt. Để tải nhiều tệp JavaScript, chỉ cần chuyển một mảng URL tới phương thức

YUI[].use["dom", function[Y]{
    Y.DOM.addClass[docment.body, "loaded"];
}];
6

4

Mặc dù các tệp được tải xuống theo kiểu không chặn bằng cách sử dụng tính năng tải tập lệnh động, bạn nên có càng ít tệp càng tốt. Mỗi lần tải xuống vẫn là một yêu cầu HTTP riêng biệt và chức năng gọi lại sẽ không thực thi cho đến khi tất cả các tệp đã được tải xuống và thực thi

Ghi chú

LazyLoad cũng có khả năng tải các tệp CSS động. Điều này thường ít xảy ra sự cố hơn vì quá trình tải xuống tệp CSS luôn được thực hiện song song và không chặn các hoạt động khác của trang

Một cách khác để tải JavaScript không chặn là LABjs [http. // phòng thí nghiệm. com/], một thư viện mã nguồn mở do Kyle Simpson viết với đầu vào từ Steve Souders. Thư viện này cung cấp khả năng kiểm soát chi tiết hơn đối với quá trình tải và cố tải xuống song song càng nhiều mã càng tốt. LABjs cũng khá nhỏ, 4. 5 KB [được rút gọn, không được nén] và do đó có dung lượng trang tối thiểu. Ví dụ sử dụng

4

Phương thức

YUI[].use["dom", function[Y]{
    Y.DOM.addClass[docment.body, "loaded"];
}];
7 được sử dụng để xác định tệp JavaScript cần tải xuống, trong khi đó,
YUI[].use["dom", function[Y]{
    Y.DOM.addClass[docment.body, "loaded"];
}];
8 được sử dụng để chỉ ra rằng việc thực thi phải đợi cho đến khi tệp được tải xuống và thực thi trước khi chạy chức năng đã cho. LABjs khuyến khích xâu chuỗi, vì vậy mọi phương thức đều trả về một tham chiếu đến đối tượng
YUI[].use["dom", function[Y]{
    Y.DOM.addClass[docment.body, "loaded"];
}];
9. Để tải xuống nhiều tệp JavaScript, chỉ cần xâu chuỗi một cuộc gọi
YUI[].use["dom", function[Y]{
    Y.DOM.addClass[docment.body, "loaded"];
}];
7 khác

Tại sao JavaScript không hoạt động trên trình duyệt của tôi?

Nhấp vào “Cài đặt nội dung” từ phần Quyền riêng tư. Nhấp vào tab JavaScript và chọn tùy chọn cho phép tất cả các trang web chạy JavaScript. Đóng cửa sổ và làm mới trình duyệt của bạn

Tại sao JavaScript không tải trong Chrome?

Google Chrome . " In the "Settings" section click on the "Show advanced settings..." Bên dưới phần "Quyền riêng tư", hãy nhấp vào phần "Cài đặt nội dung. ". Khi cửa sổ hộp thoại mở ra, hãy tìm phần "JavaScript" và chọn "Cho phép tất cả các trang web chạy JavaScript [được khuyến nghị]". Nhấp vào nút "OK" để đóng nó.

Làm cách nào để giải quyết các vấn đề về khả năng tương thích của trình duyệt trong JavaScript?

Làm cách nào để tránh các vấn đề về khả năng tương thích giữa các trình duyệt? .
Xác thực HTML và CSS. .
Duy trì khả năng tương thích bố cục. .
Sử dụng Đặt lại CSS. .
Cung cấp hỗ trợ cho các tính năng cơ bản của ứng dụng. .
Kiểm tra các vấn đề về JavaScript để tránh các vấn đề tương thích giữa các trình duyệt. .
Kiểm tra thẻ DOCTYPE

Vấn đề với JavaScript là gì?

Ngày nay, hầu hết các sự cố JavaScript trên nhiều trình duyệt đều được phát hiện. Khi mã đánh hơi trình duyệt kém chất lượng, mã phát hiện tính năng và việc sử dụng tiền tố của nhà cung cấp chặn trình duyệt chạy mã thì chúng vẫn có thể sử dụng bình thường . Khi các nhà phát triển sử dụng các tính năng JavaScript mới/mới, API Web hiện đại, v.v. ]

Chủ Đề