gpt4 book ai didi

javascript - 通过切换文件覆盖JS函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:05:07 25 4
gpt4 key购买 nike

我知道,加载脚本后,您可以删除 <script>页面中的元素和变量/函数仍然存在。

假设我有两个版本的函数,处理 UI,用户可以根据偏好在其中进行选择。

整个页面主要基于 AJAX。理想情况下,它不应该重新加载,除非用户明确地这样做,所以调用 location.reload()根本不可能。

我的想法是这样的:

<script type="text/javascript" src="ui1.js" id="uiscript"></script>

然后简单地改变:

document.getElementById('uiscript').src = ...;

两个文件的格式都是:

var ui = function(...) {
...
};

所以我的问题是,在两个来源之间切换是否会可靠地改变功能?即使脚本被缓存?我会更好地添加缓存清除查询字符串吗?还是我应该完全放弃这个想法并去做其他事情,例如在回调中重写函数而不是更改脚本的源代码?

对于类似的事情还有其他建议吗?

最佳答案

为什么不使用对函数的引用?这里有一些伪代码:

function func1() { /* Do stuff one way */}
function func2() { /* Do stuff the other way */}
var ui = func1;

ui(some_param);

function myCallback() {
// overwrite ui
ui = func2;
ui(some_param); // now calls func2
}

这只是一个简单的例子。在现实世界中,您会使用对象将您的功能组合在一起。

也许你可以使用 JavaScript 的依赖注入(inject)框架,如 inject

关于javascript - 通过切换文件覆盖JS函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10518534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com