我原型了多頁的Web應用程序,其中一些帶有嚴重的JavaScript load。我有一個(不是非常原始的)想法使頁面佈局加載一次,只改變與Ajax請求的內容。這可以做到,而且效果很好,但我有一些擔憂。
該網站檢查它獲取的每一個請求,如果它是一個AJAX請求,它只返回內容(作爲MVC 4部分視圖,但這不完全是重點,這可以在任何地方完成)。否則,它會加載整個頁面,佈局和所有內容。 這個想法是爲我正在下載的每個javascript包提供一個狀態標誌。該佈局將有一個初始化js文件,包含頁面的基本顯示邏輯,如何獲取內容等。
所有內容頁面將檢查是否加載了相關腳本,如果沒有,則啓動下載,並在成功事件中,設置正確的標誌。一些額外的錯誤處理是必需的,例如,當ajax調用由於某種原因失敗時。
的問題(一個或多個)
現在我擔心的是,有一些 「子頁面」 頗多JS。由於我必須能夠在移動瀏覽器上工作(儘管最重js的東西只有桌面,但我們暫時忘記了這一點),它會對性能產生怎樣的影響,如果我想要加載幾個MB腳本內存和「永不」卸載它們(因爲頁面沒有重新加載)。另外,如果我通過jQuery.getScript(...)函數獲取它們,腳本是否會被緩存?或者我應該以另一種方式加載腳本?
同樣的問題的內容。如果我從主體中刪除DOM元素,請將其替換爲其他元素,然後在長時間使用期間重新加載原始子頁面,對內存使用情況和性能有何影響?
我真的很想讓這個領域的經驗豐富的人給我一些關於我的擔憂的見解,然後再讓我自己看起來完全愚蠢於一個無用的概念驗證原型。
在此先感謝!
編輯:更改標題正確表達
編輯2:分居問題是什麼,什麼是上下文
這個答案(更像是消除)我的問題的一半。如何刪除讀取DOM元素,特別是與事件處理程序掛鉤他們?他們對性能有多大的影響(即使我傾向於使用(...)函數上的jquery來避免這個問題,我會感興趣會發生什麼) – Robert
@Robert - 這取決於你想要什麼樣的DOM元素追加/刪除以及多久執行一次。 – Venemo
@Robert更新了我的答案 – Venemo