【发布时间】:2012-05-18 02:42:11
【问题描述】:
我知道,一旦脚本加载完毕,您可以从页面中删除 <script> 元素,变量/函数仍将存在。
假设我有两个版本的函数,处理 UI,用户可以根据偏好在其中进行选择。
整个页面大量基于 AJAX。理想情况下,除非用户明确完成,否则它永远不应重新加载,因此调用location.reload() 是不可能的。
我的想法是这样的:
<script type="text/javascript" src="ui1.js" id="uiscript"></script>
然后简单地改变:
document.getElementById('uiscript').src = ...;
两个文件的格式为:
var ui = function(...) {
...
};
所以我的问题是,在两个来源之间切换会可靠地改变功能吗?即使脚本被缓存了?我会更好地添加一个 cachebusting 查询字符串吗?还是我应该完全放弃这个想法而去做其他事情,例如在回调中重写函数而不是更改脚本的源代码?
还有其他类似的建议吗?
【问题讨论】:
-
这是用于生产站点还是仅用于测试工具?我正在使用 iframe 来保存脚本并重新加载 iframe。但这只是一个开发工具。
-
制作网站 - 更准确地说是游戏。
-
真的需要切换文件吗?是否有这么多脚本,您不能同时加载/全部并使用类似策略模式的东西来允许用户切换?
标签: javascript ajax user-interface overriding