将JavaScript脚本绑定到各自的网页
我正在开发一个大型web应用程序,它有大约10000行JavaScript代码(不考虑第三方库)。为了加快页面加载速度,已决定自动将每个脚本文件连接到一个大型脚本中,该脚本在第一次访问应用程序时在客户端上加载(并缓存)。这是一个问题,因为每个页面都有自己的脚本,其中包含(本质上)相同函数所需的所有JavaScript。将JavaScript脚本绑定到各自的网页,javascript,angularjs,exception-handling,dependency-injection,module,Javascript,Angularjs,Exception Handling,Dependency Injection,Module,我正在开发一个大型web应用程序,它有大约10000行JavaScript代码(不考虑第三方库)。为了加快页面加载速度,已决定自动将每个脚本文件连接到一个大型脚本中,该脚本在第一次访问应用程序时在客户端上加载(并缓存)。这是一个问题,因为每个页面都有自己的脚本,其中包含(本质上)相同函数所需的所有JavaScript。 现在,如果其中一个脚本中出现错误,很难判断该错误来自何处,因为所有内容都被卷到添加到每个页面的同一个脚本中,而不是像以前那样在每个页面中使用显式script声明。 有解决这个问题
现在,如果其中一个脚本中出现错误,很难判断该错误来自何处,因为所有内容都被卷到添加到每个页面的同一个脚本中,而不是像以前那样在每个页面中使用显式
script
声明。有解决这个问题的JavaScript模式吗?我正在考虑类似AngularJS模块的东西,可以绑定到web应用程序页面中的特定容器。
然而,我想要一个简单的、定制的解决方案,因为我们的时间很短,而且我们没有时间在我们的应用程序中实现一个框架。它应该只将某些脚本(模块)应用于它们各自的页面,并且应该允许开发人员明确声明某些脚本所依赖的任何其他脚本(模块)。
此外,实现一个异常处理系统来通知用户(例如在Firebug控制台中)异常是从哪个模块产生的(如果页面的模块依赖于其他模块),这将是非常好的。
在JavaScript中是否有解决此类问题的通用方法(不依赖于框架)?解决问题的可能方法是使用js源代码映射。许多concat/minify/uglify工具直接支持此功能,而大多数现代浏览器都能够解释它们 您仍然可以提供一个包含所有代码的JS文件(即使这很可能不是处理如此大量代码的最佳方法,这在很大程度上取决于您的总体架构) 但是浏览器开发工具现在可以向您显示错误/控制台输出/etc的原始文件名和行号 您很可能不会在生产环境中提供源映射文件
进入js源代码映射的一个好方法是。对于开发,您可以捆绑脚本,但不能缩小它们。当您遇到错误时,您将能够看到实际的代码。对于生产使用,最好不要有任何异常:)是的,我们就是这样做的,但是如果出现问题,仍然很难跟踪其中一个脚本中的错误(有10000行代码)。如果开发人员在与某个页面对应的脚本中出错,那么他可能会在完全不同的地方出错,因为每个页面上都加载了所有内容