2013-03-06 41 views
3

我正在研究一個網站,雖然網站的數據量不是很大,但卻有足夠的JavaScript讓我覺得它會從requirejs中受益。我們打破頁面(和功能)的模塊化方式似乎也支持這一點。requirejs - 在非SPA網站中的使用

儘管在單頁應用程序中使用requirejs有很多示例,但在非SPA網站上看不到很多示例。

例如,我正在使用jQuery UI選項卡,我希望在每個頁面上運行這些選項卡。所以我想運行一些像$('.tabs').tabs();你可以把它放在你的main.js/app.js(或你指定的data-main)嗎?

第二個問題。該頁面使用HTML/CSS模塊構建。網站後面的CMS知道哪些HTML/CSS模塊在頁面上,因此我可以動態編寫requirejs配置,以便知道要初始化哪些JavaScript模塊。這是一種常用的方法嗎?雖然我實際上可能包含所有JavaScript文件,但我很想優化main.js中的代碼,以確保它只執行正在頁面上使用的模塊的代碼。有沒有人做過這個?

非常感謝,

詹姆斯。

+0

你可能想看看http://requirejs.org/docs/api.html #modulenotes。你會發現你可以把你的JavaScript放到需要其他模塊/模塊部分的模塊中。這被稱爲AMD(http://requirejs.org/docs/whyamd.html#sugar)。這樣你就不必在全球基礎上要求你的腳本。你只是讓你的模塊需要他們的需求。 – mayrs 2013-03-08 16:16:42

回答

0

您需求的解決方案不同的是,

main.js應具有的功能,將在要求被調用(不同的需求 - 不同的功能)

這將確保只有所需的代碼運行。

或者,如果你可以定義動態的JS >>將在每個新的函數調用重新創建。由CMS,其複雜但可能。就像在瀏覽器類型和版本檢查的基礎上調用的動態CSS一樣。

-

調用js文件中的所有文件

如果您使用的是PHP或APS或.NET(你可以使用一些頭文件或主文件調用的是「JS」文件一次,否則必須手動添加靜態文件的情況下,js文件鏈接到每一個文件,或者

您可以使用它我們已經在所有文件中使用的其它JS文件中調用JS文件

更新:試試這個JS動態地添加JS file的代碼這裏需要的,而不是在每一頁上..

$("head").append('<script type="text/javascript" src="global.js"></script>'); 

這將動態地添加腳本文件的網頁上,其中調用。所以,在JS中使用或在script標籤下的頁面中添加此行;並提供所需的文件路徑,即這裏src="global.js"

我希望這種幫助,如果有任何疑問,請回復:)

+0

嗨MarkiK - 我不難動態地寫入正確的JavaScript,所以我可能會這樣做。這實際上是一個如何從只有某些CMS模塊需要的代碼中分離全局(始終執行的代碼)的問題。我是否將全局JS調用硬編碼到main.js中,或者查看一個更可維護的方式來執行此操作?全球JS的一個例子是一個分析模塊。 – James 2013-03-12 09:14:41