angular 问题记录1

发表于 angular 分类,标签:

9.性能问题解决方法

 

 

1.prefixed.js    全部在编译之前弄完

 

 

ceshi: 114.465ms

 

ceshi: 106.195ms

 

 

 

优化前  393ms,452ms429ms,365ms

 

 

 

首页执行速度: index: 14.190ms

 

 

 hide() 方法速度非常慢

1105.920ms

 

 

css()  方法速度快

272.224ms

317.266ms

 

 

 

默认展开

: 0.584ms

 

 

: 13.121ms

 

163.259ms

 

174.228ms

 

 

 

ie  处理  244万的字符串插入到dom中运行速度非常慢

 

 

千万不要用 html() 方法, 可以用 innerHtml 方法替代。

innerHtml html()  方法要快上n倍。

 

  // 生成html,不要用 html() 方法,ie 处理会非常慢

    // _scope._this.html(html);

 

 

 

 

header.js  150

 

 

 

jsgl   集中管理

 

 

jzgl-sjzj.js

 

10.性能问题解决方法

 

iframe 跨域的话,父类不能操作 iframe里面的内容,如果需要操作,那么需要用 postMessage()

 

 

 

11. window.open('http://www.baidu.com','test-test')

此种写法ie9会报错,后面的名字不能用分割符,需要用驼峰命名

 

 

 

12.历史记录可以通过hash值进行判断,然后进行叶面的跳转

window.location.hash='#/homepage?asdasdasdasdioooqweqwejl'


 

 

 

 

13.limitTo  angular 使用

1.截取文字的长度,可以是负数,负数代表从后面截取
<div ng-bind="'aaaaaaaabb'|limitTo:-2"></div>


 

2. 循环数组,直接限制多少条
<tr   ng-repeat="item in scope.data.datalist | limitTo: 3"


 

 

14.ng-bind-html过滤了style,怎么解决?

 

$sce.trustAsHtml();

方法,如 

$scope.docHtml= $sce.trustAsHtml(data);

 

 

15. angular  排序过滤器  |   orderBy : param

 

<div ng-controller="ctl">
    Search:<
input ng-model="query">
    Sort by:<
select ng-model="order">
    <
option value="name">name</option>
    <
option value="age">age</option>
</
select>

    <
ul class="persons">
        <
li ng-repeat="person in persons | orderBy:order">
            {{person.name}}

            {{person.age}}
        </
li>
       <li>降序的写法</li>
        <li ng-repeat="person in persons | orderBy:order:true">
            {{person.name}}

            {{person.age}}
        </li>
    </
ul>
</
div>
<
script type="text/javascript">
   
function ctl($scope){
        $scope.persons = [
            {
"name":"xingoo","age":25},
            {
"name":"zhangsan","age":18},
            {
"name":"lisi","age":20},
            {
"name":"wangwu","age":30}
        ];
        $scope.order =
"age";
    }
</
script>


 

 

15. angular  事件中存在 $event 对象 ,我们可以通过 $event 对象获取需要的元素

 

 

Angular  event  源码 ngEventDirs.js:

var ngEventDirectives = {};

    forEach(

      'click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste'.split(' '),

      function(name) {

        var directiveName = directiveNormalize('ng-' + name);

        ngEventDirectives[directiveName] = ['$parse', function($parse) {

          return {

            compile: function($element, attr) {

              var fn = $parse(attr[directiveName]);

              return function(scope, element, attr) {

                element.on(lowercase(name), function(event) {

                  scope.$apply(function() {

                    fn(scope, {$event:event});

                  });

                });

              };

            }

          };

        }];

      }

    );

复制代码

 

1.        Angular支持的event click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste

2.        Angular在执行事件函数时候传入了一个名叫$event的常量,该常量即代表当前event对象,如果你在Angular之前引入了jQuery那么这就是jQueryevent.

 


0 篇评论

发表我的评论