在运行时用动态加载的脚本重写JavaScript函数
Overwriting JavaScript function with dynamically loaded script during runtime
我只是想看看这种方法在架构上是否合理。
我有一个在init上加载的main.js,以及在运行时加载的动态外部脚本(一次加载一个)。main.js中有一个函数,每次需要处理从服务器接收的消息时都会被调用,我希望该函数能够调用外部脚本自定义句柄函数,为此,我在外部脚本中指定了一个同名函数,以便每次加载新脚本时都覆盖main.js的函数。
从我的试验来看,它似乎有效,但有一些注意事项,所以我有一些问题:
有更好的方法做这样的事情吗?
这种方法可能会出什么问题?
我意识到,如果没有刷新/导航,就无法从缓存中清除脚本,但我的脚本相对较小,所以我认为这不会是个问题。
编辑更多信息:
我需要有一个单一的页面结构,这样导航是不可能的。在服务器发送消息之前,我也不知道下一个"页面"会是什么,所以必须在运行时使用AJAX检索资源。
在主函数中指定一个调用:
var call=false;
function onsomething(){
//general stuff needed in both
if(call!=false){
call();
}else{
//original main code
}}
只需在稍后加载的js:中设置即可
call=myfunction;
function myfunction(){//new main code}
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 借助asp.net验证或java脚本对多个文本进行验证
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- Java脚本时间添加
- 重写我的 angularJS 脚本以支持 localStorage
- jQuery 更新脚本标记 - 重写所有内容
- 在没有 jQuery 的情况下重写脚本
- 正在从内容脚本重写存储方法
- Greasemonkey脚本重写链接
- 嵌入<脚本src=>从remote.js重写高度
- 重写文档.写入以延迟脚本'执行
- 重写java脚本中的函数
- “用Angular的方式”重写脚本
- Greasemonkey脚本重写和附加到特定的url
- Mod重写和java脚本弹出窗口
- 在运行时用动态加载的脚本重写JavaScript函数
- GreaseMonkey脚本重写图像链接
- 如何重新重写这个与主干相关的脚本,以传递要加载的模板/视图的名称
- 加载具有与其他脚本相同的变量的脚本并重写
- 重写Jade脚本.块