想象一下Javascript作为第一页上的第一个脚本
var MySuperObject = new (function () {
this.SuperObjectInit();
})();
现在假设所有进行此脚本(或其中的大部分)的内容都要求SuperObject满足其加载条件并正确加载。
假设由于某种原因加载了对象失败,我需要中止加载页面的其余部分和特别是脚本。
我知道大多数人都会尖叫为什么不让你的函数发出回调onSuccess和onFailed但问题是这是在一个ASP.Net项目中有masterpages,nestedmasterpages,usercontrols等等(每个都有他们自己的依赖和脚本);使这种方法有问题。
另一个选项(我假设)是使用window.location =“myErrorPage.html”;但我不喜欢为错误信息创建另一个页面的想法或它导致重定向的事实。
我希望做的是
StopLoadingPage();
document.write("Error has occurred");
但不确定如何实现这一目标。
答案 0 :(得分:1)
您要实现的目标不是网页的设计方式,因此据我所知,这是不可能的。从逻辑上讲,你只能在Javascript中停止在Javascript中启动的内容,因此我能想到的唯一解决方法是异步加载相关脚本。
我知道这不是您正在寻找的解决方案,但如果没有其他选择(我认为没有),请查看RequireJS,它会为您处理JS依赖项(不需要)对于回调等...):http://requirejs.org/