我正在開發一個網站,其中用戶的「主頁」頁面包含一些數據供一些廣泛的JavaScript代碼使用。目前,數據被編碼爲文檔主體末尾的腳本標記中的JSON對象,並且GUI控制對象剛剛被實例化,以便它可以訪問DOM和JSON對象。我喜歡這種結構,因爲它可以讓頁面快速加載。它看起來是這樣的:內嵌或從單獨的AJAX調用中包含JSON數據?
<body>
<script type="text/javascript" src="mylib.js"></script>
<div>...lots of DOM and text content...</div>
<script type="text/javascript">
var userData = {...}; // Encoded by HTTP response handler.
$(document).ready(function() {
// GUI object which modifies form controls, etc.
new MyGuiObject(userData, document.form.myForm);
};
</script>
</body>
然而,新的功能可能需要的用戶數據對象返回作爲一個單獨的HTTP請求,這意味着內聯形式將是一個重複的(和違反DRY principle的)。很容易重構上面的代碼來爲userData使用AJAX請求,但它引入了另一個我們知道需要(和可用)的數據的HTTP請求。
是否值得更改代碼以使用從AJAX調用中檢索到的userData?如果是這樣,對從中檢索數據的URL進行編碼的最佳做法是什麼(考慮到它會更好地由Web框架動態生成)?
*'var userData = {...};'*這不是一個JSON對象。這是一個** JavaScript **對象(使用JavaScript的對象文字符號,其中JSON是*子集*)。 – 2011-05-06 06:01:39
@TJ:對,謝謝你的澄清,我會編輯這個問題。 – maerics 2011-05-06 06:07:39
我的兒子正在展示。 ;-) – 2011-05-06 06:08:59