2013-05-27 65 views
0

在我的單頁JS-app中,我決定以JIT的方式對HTML/JS的部分進行加載。我發現2種方式來做到這一點,利用JQuery來自JQuery的HTML/JS動態加載

第一:

$("#target_div").load("html_and_js.html");  
// the HTML file contains both HTML` and the corresponding JS code 

二:

$("#target_div").load("thtml_only.html", function() { 
    $.getScript('js/js_only.js'); 
}); // now the JS is kept separatelly from HTML 

我想知道您的經驗和意見關於利弊/兩種方法的缺點

因爲我建立一個單頁AJAX app,我在以下幾個方面特別感興趣:

  • Browswer性能,如果是由大量的動態負載/ removings的 - 多少內存現代瀏覽器預留DOM?
  • 是DOM結構保持安全和乾淨?
  • 當相應的DIV(#target_div在我的例子中)被刪除 - JS是否也從瀏覽器內存中刪除?最終的內存泄漏?

每個意見都非常感謝。

+0

如果你真的成單頁的方式,然後使用Backbone.js的。它將允許您以結構化MVC方式組織所有代碼。 [GotoBackboneHere](http://backbonejs.org/) – codeVerine

+0

我決定只使用JQuery(和一個基於JQuery的小部件庫),原因有兩個: 1-爲了避免這些框架變得過時的風險2-將其保留爲儘可能多地控制性能和設計問題 – Aleks

+1

爲什麼不使用[requirejs] [http://requirejs.org/]而不是這樣你將擁有可維護的模塊,單頁面應用也是一個好主意有很多JS圍繞框架浮動或不。 – Phoenix

回答

0

從架構的角度來看,您正將表現層與業務邏輯之間分離出來,這些業務邏輯可能會保存在javascript中 - 總是很好做。

將您的javascript分離成單獨的文件,可以讓您更輕鬆地將它縮小,並重新使用您開發到JavaScript文件的任何功能。

此外,在第二個選項中,JavaScript將只在html完全加載後才加載。雖然我總是推薦javascript儘可能接近HTML文檔的末尾,但有一些(儘管很少)的場合需要在頁面加載期間運行javscript的某些部分,而不是在它之後運行,因此第二種方法(首先加載html,然後完成javascript)將不允許此JavaScript運行。雖然......它可以讓你把罕見的javscript放到純HTML頁面(授予它不僅僅是HTML),並且讓JavaScript的其餘部分獨立運行在最後的頁面。

只是我的意見,希望他們幫助,

庫爾特