javascript - 为什么有时候把代码压缩之后应用就不能正常运行了?

 清雅竹gf_644 发布于 2022-11-12 20:29

一段代码(其实是一个网页),用一个工具(我目前用的http://dean.edwards.name/packer/)去掉了所有的空格和注释,但是呢,去掉之后的代码,理论上是可以正常运行的,为什么有时候,压缩之后的css,html,javaScript代码就不能正常运行了?

原谅我这么问问题。

5 个回答
  • 代码规范很重要

    2022-11-12 20:30 回答
  • 贴出压缩后的地址,这样谁知道你那里错了。。

    2022-11-12 20:30 回答
  • 首先保证良好的代码书写习惯.
    举个栗子:

    var test=function(a){
        alert(a)
        return function(c){
            alert(c)
        }
    }
    (function(b){
        console.log(b)
    })(1)

    这段代码的执行结果.
    但实际上期望的是只输出立即调用函数.所以需要在一些地方加上分号.

    var test=function(a){
        alert(a)
        return function(c){
            alert(c)
        }
    };
    (function(b){
        console.log(b)
    })(1);

    所以如果需要压缩代码 一般外链的js前面都会加上;

    2022-11-12 20:30 回答
  • 原谅我 没遇到过。
    看了 楼下大神的评论 我还是忍不住想再说两句
    确实
    大神说的很对
    虽然我没有遇到过这个问题
    但是由于早上回答了一个childNodes的问题
    还是想说一下
    html中要获取节点尽量不要用能获取文本节点或者一些别的节点的方法
    实在不可取 一压缩就死翘翘了(——
    还是js
    命名尽量规范些 不要写个a啊 b啊 c啊 的(%——%)
    js混淆压缩一般会把tab()名称压缩为t()
    所以 如果你某个地方正好写了个t()
    那就又死翘翘了

    2022-11-12 20:30 回答
  • 代码压缩不外乎就是去掉了多余的空格,换行符等字符的方式,那么既然是去掉了一些东西,在某些情况下,出现问题也是能够理解的吧。举个例子,假如你Html页面有个ul列表,你js中直接获取它的childrenNods,其中就是包含了空格符和换行符,然后你后面有有一个方法,就是去掉这些空白符合换行符的,结果你html压缩了,没有空白和换行符了,就会报错。这,你能理解吗?具体问题,你还得具体分析一下,如果你非要压缩,哪里出了问题,再相应做修改就是了。还有就是,压缩的时候,最好把css样式,js,和html分开来压缩,不然也容易出问题

    2022-11-12 20:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有