Chúng tôi có một trang web sản xuất jQM đây là cách chúng tôi làm mọi thứ - và có những người khác có thể không đồng ý nhưng chúng tôi thấy điều này làm việc cho một trang web rất lớn.
Sử dụng nhiều đơn trang HTML, một lượng lớn mẫu nhiều trang đánh bại những lợi ích của tải ajax jQM kể từ khi bạn đang tải tất cả HTML của bạn lúc bắt đầu (trừ khi trang web của bạn là nhỏ)
Bạn chắc chắn muốn sử dụng tải ajax, jQM chỉ kéo mã trong số <div data-role="page">
NHƯNG của bạn làm phức tạp JS của bạn xem bên dưới
Bạn không cần nhiều tệp JS, NHƯNG bạn cần tải tất cả JS của bạn ngay từ đầu, chúng tôi thực hiện điều này bằng cách thực hiện hai việc: 1., chúng tôi đặt trình nghe on
vào gốc tài liệu và lắng nghe các sự kiện pageinit/pageshow. Mỗi khi một trang được tải chúng được kích hoạt, bạn cũng có một tham chiếu hữu ích cho trang hiện tại và bạn có thể sử dụng một attr trên trang để xác định trang đó là gì. 2. Có tất cả các JS trong một bao gồm một số loại (hy vọng bạn đang sử dụng PHP, CF hoặc một cái gì đó) và đặt nó trên mỗi trang, theo cách đó không có vấn đề mà điểm người dùng duyệt đến trang web di động của bạn, họ nhận được tất cả các mã nạp
Nhược điểm là tất cả các JS được nạp ban đầu, nhưng minified chúng tôi thấy nó không có vấn đề lớn, và nếu nó thực sự là một mối quan tâm nhìn vào RequireJS - cộng với nó làm cho gỡ một làn gió kể từ khi JS là tất cả ở đó chúng ta có thể dễ dàng sử dụng trình gỡ rối và đặt điểm ngắt. Nếu bạn tải JS động trên mỗi trang, bạn tăng dữ liệu bạn cần trả về trên mỗi trang transistion và bạn có ugliness bởi vì bạn tải lại JS dư thừa và thật khó để gỡ lỗi JS động.
$(document).on('pageinit pageshow', 'div:jqmData(role="page"), div:jqmData(role="dialog")', function(oEvent){
var pageType = $(this).data('pagetype');
//handle pageinit/pageshow (oEvent.type) for each pageType
Nguồn
2012-02-20 21:01:10
Rất ít việc phải làm với "thực hành tốt nhất" có "phiếu bầu thống nhất". – Chad