grunt concat / uglify之后的firefox无响应脚本

时间:2015-03-26 01:41:29

标签: jquery angularjs firefox gruntjs concat

Firefox在我的uglified js上给了我一个反应迟钝的脚本警告。 Chrome和Internet Explorer可以立即加载页面,因此它似乎是Firefox的特定内容。

这是我的Gruntfile.js的相关部分

uglify : {
        options : {
            except : [ 'jQuery', 'angular' ]
        },
        dist : {
            files : [
                    {
                        src : [ '<%= path.src %>/bower_components/jquery/dist/jquery.js',
                                '<%= path.src %>/bower_components/jquery-ui/jquery-ui.js',
                                '<%= path.src %>/bower_components/jqueryui-touch-punch/jquery.ui.touch-punch.js',
                                '<%= path.src %>/bower_components/angular/angular.js',
                                '<%= path.src %>/bower_components/angular-sanitize/angular-sanitize.js',
                                '<%= path.src %>/bower_components/angular-messages/angular-messages.js',
                                '<%= path.src %>/bower_components/angular-bootstrap/ui-bootstrap-tpls.js',
                                '<%= path.src %>/bower_components/ui-utils/ui-utils.js', 
                                '<%= path.src %>/bower_components/angular-ui-sortable/sortable.js',
                                '<%= path.src %>/bower_components/d3/d3.js',
                                '<%= path.src %>/bower_components/ng-csv/build/ng-csv.js',
                                '<%= path.src %>/bower_components/ng-device-detector/ng-device-detector.js',
                                '<%= path.src %>/bower_components/angular-shims-placeholder/dist/angular-shims-placeholder.js',
                                '<%= path.src %>/bower_components/angular-validation-match/dist/angular-input-match.min.js',
                                '<%= path.src %>/bower_components/angular-filter/dist/angular-filter.js',
                                '<%= path.src %>/bower_components/angular-toggle-switch/angular-toggle-switch.js',
                                '<%= path.src %>/bower_components/angular-ui-select/dist/select.js',
                                '<%= path.src %>/bower_components/ng-grid/build/ng-grid.js',
                                '<%= path.src %>/bower_components/angular-ui-grid/ui-grid.js',
                                '<%= path.src %>/bower_components/n3-line-chart/build/line-chart.js',
                                '<%= path.src %>/bower_components/ng-device-detector/ng-device-detector.js',
                                '<%= path.src %>/bower_components/angular-busy/dist/angular-busy.js' ],
                        dest : '<%= path.dist %>/js/<%= pkg.name %>.min.js'
                    } ]
        }`

兴趣点

  • 由于使用firefox访问该页面的任何人都存在问题,因此它不会与我正在运行的计算机隔离。
  • 如果我将js文件分解成更小的块并将其uglify分成6个左右的文件,那么我就不会得到无响应的脚本问题。它仅在我将其整理成单个文件或几个文件时才存在。
  • 无论我是在进行完整的uglify,还是只是js文件的简单连接,都存在问题。
  • 如果我不进行任何连接,则问题不存在。
  • 控制台中没有js错误。

1 个答案:

答案 0 :(得分:0)

自发布此消息后,我发现js图表(可能与n3 / d3图表隔离)会导致Firebug运行时出现大量性能问题。如果在使用js图表的页面上打开firebug,关闭firebug后问题甚至会持续存在。如果你打开一个新的firefox和firebug实例,你将不会遇到这个问题,但随着时间的推移,似乎会出现某种泄漏,导致性能迅速下降。再次......这个问题似乎只存在于连接的js代码中。