2011-12-02 32 views
1

我正在使用RequireJS在我的應用程序中加載模塊。我需要將我在index.php中獲得的URL參數傳遞給主模塊。有幾種方法,我可以看到這樣做,但我寧願如果在索引中的唯一的事情就是本質上仍是這樣的:如何通過require.js異步加載JavaScript中的URL參數?

<script type="text/javascript" data-main="scripts/main" src ="scripts/require-jquery.js"></script>

因爲RequireJS說,這是優化更好。我目前的解決方法是將原始的require調用放入索引文件中,然後使用URL參數。有沒有更好的辦法?

僅供參考,我在服務器端使用PHP,如果有幫助的話。

回答

0

要通過從GET到腳本的參數,你有三種選擇:

使用$ _SESSION來存儲的價值和動態地編輯主js文件。 這將導致一個大的離譜的開銷,並添加了很多不必要的同謀(更多同謀=>更多的bug)

的這段代碼http://www.onlineaspect.com/2009/06/10/reading-get-variables-with-javascript/ 添加到您的主模塊以檢索通過javscript參數。

使用PHP生成一個小的Java腳本(使用$ _GET)來設置值。 理論上它比其他選項更快。

選項2和3之間的速度應該沒有顯着差異,因此只需選擇符合您需求的選項即可。

如果主模塊是經常更新的第三方組件,我會選擇第三個選項,因爲每當您拉出新版本時都不必更改主模塊。

如果您想設置一個基於用戶的默認值,您應該堅持使用選項3以更方便地訪問您的數據庫和用戶設置。

我希望這會有所幫助。

編輯: 如果您的主模塊在加載所有腳本之前不需要參數,您可以使用選項2中的腳本添加一個額外的模塊來設置主模塊中的值。這也將解決更新問題。