【问题标题】:can we hide javascript comment in page when it renders ?我们可以在页面呈现时隐藏页面中的 javascript 注释吗?
【发布时间】:2012-04-01 00:00:33
【问题描述】:

这个问题似乎很愚蠢,只是我对此感到好奇。假设在我的 html 或 aspx 页面中,我为一些 javascript 代码添加了注释,当页面加载时,它呈现为它包含 cmets 的页面。因为我认为该评论将在执行中被忽略。它同样适用于渲染吗?有可能吗?

  1. 注释用于描述代码的作用。所以在下面我写了“这个用于替换图像”。我们可以隐藏渲染吗?

P.S : 由于这个问题没有特殊原因,只是我很好奇。不管有没有可能。

$(".SomeID").slice(5, ExpandLength).each(function() {
                this.src = this.src.replace("some.gif", "som1.gif"); // this for replacing image 
            });

【问题讨论】:

  • 如果你使用缩小器,它会将它们剥离出来。

标签: javascript jquery asp.net html browser


【解决方案1】:

查看 YUI 以最小化您的 javascript。在部署以删除 cmets 时,您将需要使用类似的工具进行一些后处理。否则,您只是粘贴同一个文件,人们可以看到您所做的事情(就像 html 或其他任何直接提供给用户的内容)。

看看这个问题以获得一个好的答案:

YUI remove javascript comments

PS 我假设您的 javascript 在 .js 或 .html 文件中,否则(如果在 asp、aspx 或 php 文件中)有关使用服务器端 cmets 的其他答案是最好的方法。

仍然......你的 javascript 应该在一个 js 文件中。它更容易管理:)

【讨论】:

    【解决方案2】:

    渲染是一个适用于流程的两个不同阶段的术语。

    1. 当 ASP 生成一些输出以在 HTTP 响应中发送时
    2. 当浏览器解析 HTML 并为用户创建可见表示时

    就 ASP 而言,JavaScript 中的注释只是另一段文本。它认为这与一段 HTML 或 JavaScript 的任何其他部分之间没有区别。因此,在第一阶段,它将被传递到浏览器。

    当浏览器收到响应时,它会处理 HTML 和 JavaScript 并生成网页供用户查看。当它执行 JavaScript 时,注释具有特殊意义(即它应该被忽略)所以它不会被执行。

    它仍然是源代码的一部分。

    为防止您必须通过服务器上的 JavaScript 解析器运行 JavaScript,请删除 cmets,然后输出剩余的任何内容。

    在将站点部署到服务器之前,将 JavaScript 保存在外部文件中并使用 minifier(一种从 JS 中删除不需要的文本,例如 cmets 和空格的工具)处理它们是一种常见的做法。

    【讨论】:

      【解决方案3】:

      前端 cmets(JS、HTML、CSS 等)无法对渲染器隐藏,但 .net cmets,例如<%-- --%> 不在源中渲染

      【讨论】:

        【解决方案4】:

        注释代码很好,但在生产中使用 javascript 时,它应该尽可能紧凑。最好的办法是缩小生产代码。在网上搜索“minify java script”。

        【讨论】:

          【解决方案5】:

          您可能需要在构建时使用外部库手动转换 javascript。例如。使用 YUI Compressor 库。

          http://developer.yahoo.com/yui/compressor/

          不幸的是 Javascript 无法修改自身,因此 JS 没有内在的方法可以在没有外部库的情况下从 Javascript 中删除 cmets。

          【讨论】:

            【解决方案6】:

            如果您使用构建脚本缩小代码,不仅这些 cmets 会被删除,而且您的代码也将没有空格(字符串除外),并且在浏览器 DOM 中呈现速度更快。这实际上是最佳实践。结帐

            HTML 5 Boiler Plate Build Script、YUI Compress 或 NetTuts Builder 应用程序。

            【讨论】:

              【解决方案7】:

              可以免费使用多种工具来压缩 JavaScript,包括 Closure Compiler、JSMin 或 YUI Compressor。

              您可以创建使用这些工具来缩小和重命名开发文件并将它们保存到生产目录的构建过程。

              专家建议压缩任何 4096 字节或更大的 JS 文件。

              您应该会看到任何可以减少 25 字节或更多字节的文件的好处(小于此值不会带来任何明显的性能提升)。

              参考:[http://code.google.com/speed/page-speed/docs/payload.html#MinifyJS](最小化负载大小)

              【讨论】:

                【解决方案8】:

                通过这个压缩器传递你的 ASP 代码,看看它是否解决了你在 JavaScript 中的 cmets 问题:

                http://prettydiff.com/?m=minify&html

                【讨论】:

                  【解决方案9】:

                  我使用 ASP.net 核心,已将 JS 移至 site.js 并使用缩小。
                  但是我仍然有一些 JS 在视图中并且不希望我的 cmets 显示在 GC 中。
                  在 Asp.net core 中,您可以使用:

                  @* 你的隐藏评论 *@
                  而不是
                  // 你的可见评论

                  【讨论】:

                    【解决方案10】:

                    如果你用脚本标签包围一块 cmets,它们将不会打印到屏幕上

                    【讨论】:

                    • 但是您必须定义要由您的脚本管道解析的Javascript文件,这可能会产生其他问题。
                    猜你喜欢
                    • 2012-12-19
                    • 1970-01-01
                    • 2023-04-11
                    • 2012-07-24
                    • 1970-01-01
                    • 2014-06-08
                    • 1970-01-01
                    • 2021-06-28
                    • 1970-01-01
                    相关资源
                    最近更新 更多