Mamy stronę produkcyjną jQM o tym, jak robimy różne rzeczy - i tak inni mogą się z tym nie zgodzić, ale stwierdziliśmy, że działa to w przypadku bardzo dużej witryny.
korzystać z wielu stron pojedyncze HTML, duża matryca wielostronicowy pokonuje korzyści ajax załadunku jQM od czasu jesteś ładuje cały swój kod HTML na początku (chyba, że witryna jest mała)
Ty zdecydowanie chcesz użyć ładowania ajax, jQM tylko ściąga kod w twoim <div data-role="page">
ALE to komplikuje twój JS patrz poniżej
Nie potrzebujesz wielu plików JS, ALE musisz załadować wszystkie swoje JS na początku, osiągamy to przez robienie dwóch rzeczy: 1. umieszczamy detektor on
w katalogu głównym dokumentu i nasłuchujemy zdarzeń pageinit/pageshow. Za każdym razem, gdy ładowana jest strona, są one wyzwalane, masz także przydatne odniesienie do bieżącej strony i możesz użyć atr na stronie, aby określić, która strona była. 2. Czy masz wszystkie JS w jakimś pliku (mam nadzieję, że używasz PHP, CF lub czegoś podobnego) i umieszczasz to na każdej stronie, w ten sposób, bez względu na to, który punkt wejścia przegląda użytkownik na twojej stronie mobilnej, dostają cały kod załadowany
minusem jest to, że wszystkie JS jest załadowany wstępnie, ale minified znaleźć to nic wielkiego, a jeśli jest to naprawdę problemem spojrzeć RequireJS - plus to sprawia, że debugowanie wiatr od JS jest tam wszystko, z czego możemy łatwo korzystać z debuggera i umieszczać punkty przerwania. Jeśli dynamicznie ładujesz JS na każdej stronie, zwiększasz ilość danych, które powinieneś zwrócić na każdym transistionie strony i masz brzydotę, ponieważ ładujesz ponownie nadmiarowy JS i ciężko jest debugować dynamiczny JS.
$(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
Bardzo niewiele rzeczy związanych z "najlepszą praktyką" ma "jednogłośny głos". – Chad