我正在開發一個非常大型/複雜的單頁應用程序,我正在嘗試不同的技術來加速我的表現。從PHP或Javascript加載HTML?
我的應用程序使用了許多ui小部件(都來自jquery ui和jqWidgets庫),目前我加載所有的html並在頁面加載時初始化所有小部件(無論是否使用小部件,即彈出窗口被初始化並保持隱藏直到被調用)。
我意識到我可以節省一些資源,只需在用戶需要之前加載用戶將使用的小部件即可,非常標準。所以我基本上有兩個選擇:
1.)我可以將所有的HTML移動到注入(附加)相關html的javascript文件,然後在調用widget之前初始化小部件,類似於此:
$("#widgetWrapper").append("<div id='newWidgetID'></div>");
$("#newWidgetID").methodToCreateWidget();
2.)我可以做基本上與上述相同,不同之處檢索來自通過AJAX服務器的HTML。
優點/缺點
我不精通的客戶端 - 服務器的性能,但我看到一些明顯的優點和缺點在這裏,由HTML移動到一個JavaScript文件,做我所有的DOM操作,我不會減少我的網站在頁面加載時需要的數據量,我只是將數據從html主體轉移到js文件,但是我會大大減少初始DOM元素的數量。
我唯一害怕方法是一個慢客戶端 - 服務器連接可能會導致我的用戶界面響應時間不平凡的延遲。
有沒有關於如何解決這個問題的建議?我嚴重傾向於方法,行業標準是什麼?或者我應該只是說「和它在一起」,然後繼續加載並初始化所有內容(等待登錄,但快速響應),並希望瀏覽器在JS性能方面繼續突飛猛進(與IE當然是例外)。
好吧,我在假設用戶寧願等待幾秒鐘,並在登錄時預先下載一些額外的MB,然後在整個與應用程序的交互過程中不斷有一堆延遲1秒的操作?我應該堅持這一理念嗎? –
想一想:如果你正在加載靜態數據(因爲它是一個1頁的應用程序),並且需要4秒鐘才能下載20個小部件,每個小部件只需要加載200毫秒,最重要的是,你如果它們真的是靜態的,它們將具有緩存版本。 –