如何在将错误隔离到每个文件的同时连接JS文件
How can I concatenate JS files while isolating errors to each file?
问题
我在运行时加载来自各种第三方开发人员的脚本(这个应用程序不是由我托管的,所以一旦运行,我就失去了对代码的控制),比如说a.js、b.js、c.js.
我想减少HTTP请求,所以我将它们作为一个大的串联文件abc.js 提供
我希望避免任何一个文件中的错误影响任何其他文件的执行。我怎样才能做到这一点?
非启动器
-
尝试捕获
Try-catch对语法错误没有帮助。语法错误将导致整个文件失败。它也会导致FunctionDeclarations出现问题,而FunctionDeclaration在Firefox中已从全局范围中删除。
-
取消连接
我需要减少请求。文件在传输过程中必须连接起来。
首选项
保持脚本的同步加载。
可能的解决方案
- 将连接文件加载为文本,然后分别评估每个脚本。GMail Mobile使用了一种技术——http://googlecode.blogspot.com.au/2009/09/gmail-for-mobile-html5-series-reducing.html
任何预先存在/预打包的库都可以实现这一点,这对我来说是最好的解决方案
编辑:我的"应用程序";是现场安装的,并且在运行时可以使用来自第三方的任意JS进行插入。所以我从来没有在生产之外一起测试过所有的JS。
你不能这么做。如果是一个大的串联文件,语法错误就在一个大文件中。如果不连接文件,则会收到多个对单独文件的请求,但至少可以将错误定位到特定文件。这是没有办法的。
也就是说,除非文件被缩小,否则任何像样的浏览器,如Chrome、Safari、Firefox,都应该在开发者工具中显示错误所在。
你真的无法做到这一点(除非你建议将其加载为文本文件,然后对其进行评估,但老实说,这太可怕了)。
您可能应该做的是在开发过程中保持文件的分离,一旦对它们进行了测试,就可以在生产环境中连接它们。
花更多的钱购买更好的服务器/连接或在S3上托管您的应用程序;无论你在做什么,成本都可能比你的时间便宜。
- 从文本文件js中读取列表
- 当我用ctrl+p搜索时,为什么要在谷歌chrome上使用inspect来调试缺少显示文件js
- 获取用于外部JavaScript文件(.js)的代码提示
- 如何将Javascript文件(.js文件)放在web服务器中
- 如何将 JavaScript 文件(.js 文件)添加到 C# 项目并从 C# 代码调用 JavaScript 方法
- 在 Node 中包含 javascript 文件.js无需 require('.') ing
- 如何使用jquery显示多个文件.多文件.js
- 使用 PDF 打开 PDF 文件.js而不将文件作为查询字符串传递
- 转换颜色十六进制值以用于三个 JSON 文件.js
- 如何使用 jQuery 选择多个文件.多文件.js插件?使用单个关闭按钮一次选择多个文件
- 如何在 Gulp 任务中间添加 CSS 文件.js
- 如何从Dropzone上传和删除文件.js
- 如何在视频中添加视频文件.js 4.2.1.
- 从快速节点下载文件.js具有 JWT 授权
- 访问 JavaScript 文件.js中的 C# 变量
- 在节点中热重载外部 js 文件.js如果文件有任何更改
- 如何在一台服务器中运行不同的.js文件.js NODE JS中的文件
- 如何在多文件.js中上传文件时检查文件扩展名
- 将文件.js中的var导入到模块joomla的模板中,并使用后台进行修改
- 在path项目中编写文件js脚本