在AngularJS之后加载jQuery(而不是之前)

时间:2015-01-05 10:00:22

标签: jquery angularjs performance mobile

为了让angular.element指向jQuery而不是jQLite,需要在页面头部的Angular之前加载jQuery。

但是,出于性能原因(特别是在移动设备上),如果可以在加载AngularJS之后加载jQuery,那就太好了。 jQuery库相对较大,因此让“高于内容”依赖于jQuery lite并让jQuery在Angular之后异步加载,可以提高性能。

我认为如果Angular公开它的bindJquery函数并且它是JQLitePrototype对象,那将是可能的。

任何想法如何在不触及Angular核心的情况下做到这一点?

1 个答案:

答案 0 :(得分:3)

您可以在加载jQuery后手动扩展JQLite原型:

angular.extend(angular.element.prototype, jQuery.fn);

但是,由于这不是jQuery与Angular的设计用法,因此可能会带来不必要的问题。但是,如果您的唯一目的是使用一些有用的jQuery方法扩展angular.element,那么这应该没问题。

检查下面的演示,看看jQuery的方法在angular.element中是如何可用的,即使在Angular之后加载了jQuery。

演示:http://plnkr.co/edit/fo70VtmgBCQDU9RWGGVF?p=preview