如何保持评论
上下文:对于JavaScript项目的开发版本,我编写了一个小工具来跟踪脚本文件依赖关系(因为我不喜欢任何现有库的欢闹语法要求)。 我想以类似于其他语言的方式使其工作,所以我决定解析导入的文件以获得如下注释:
// DEPENDS: myurl.js //
使用jQuery的$ .ajax()构建和评估依赖关系图并获取依赖关系。 这适用于顶级文件。 但是,使用ajax调用的文件会被删除注释,因此我无法进一步解析依赖关系。
为了您的利益:循环是
问题:有没有办法阻止jQuery从$ .ajax()加载的文件中删除JavaScript评论标签?
代码:我以这种方式调用ajax
$.ajax({
url: fileName,
dataType: 'text',
context: this,
success: function(jqXHR) {
this.parseImport(fileName, jqXHR);
}
});
(从一个提供fileName的方法内部和正确的)。 我希望dataType:'text'会迫使jQuery从字面上导入文本,但是,它并没有:--D
$ .ajax()的API文档告诉,dataType:text元素的内容被window.String解析,但我不确定,window.String对它的输入做了什么。 也许解决方案是在这个部分的某个地方?
如果有人能指出我的方向,我会很高兴。
你使用ajax
方式不会去除文件中的注释。 你要求jQuery从服务器加载文本。 它会忠实地加载该文本,而不以任何方式修改它。 我怀疑在删除注释的服务器端有一些缩小/压缩过程。 该jQuery代码不会。
但是你仍然可以绕过去除评论的任何东西 - 不使用评论。 您可以改为使用字符串:
"DEPENDS: myurl.js";
既然这不是评论,它不应该被剥夺。 它看起来有点奇怪,但JavaScript的语法有ExpressionStatement,它是一个完全由表达式组成的语句。 当然,字符串本身是一个有效的表达式。 (这是他们如何"use strict";
在ES5中,如果没有它会导致ES5之前的JavaScript引擎出现问题)。
字符串解决方案是一个很好的解决方案,但我真的相信还有一个很好的解决方案。
只需用ajaxTransport
定义你的ajax引擎,例如“myscript”。 例如,看到这个链接:你可以注册你的方法,它会以你喜欢的方式返回所有的东西; 此外:您可以直接在传输中解析注释,并以数组的形式返回依赖关系。
这将封装您的解析方法,并将它们构建为ajax调用,就像它是您自己的JavaScript文件标准一样。
要了解更多信息(实际上他们缺少示例),请参阅参阅jQuery文档
链接地址: http://www.djcxy.com/p/84997.html上一篇: how to keep comments