/ / Caricamento di jQuery dopo AngularJS (anziché prima) - jquery, angularjs, performance, mobile

Caricamento di jQuery dopo AngularJS (anziché prima) - jquery, angularjs, performance, mobile

Per consentire a angular.element di puntare a jQuery anziché a jQLite, è necessario caricare jQuery prima di Angular nell'intestazione della pagina.

Tuttavia, per motivi di prestazioni (soprattutto sudispositivi mobili) sarebbe bello se fosse possibile caricare jQuery dopo aver caricato AngularJS. La libreria jQuery è relativamente grande, quindi lasciare che il "above the fold content" dipenda da jQuery lite e lasciare che jQuery si carichi in modo asincrono dopo Angular, aumenterebbe le prestazioni.

Penso che sarebbe possibile se Angular esponesse la sua funzione bindJquery ed è l'oggetto JQLitePrototype.

Qualcuno ha idee su come farlo senza toccare il nucleo angolare?

risposte:

3 per risposta № 1

È possibile estendere manualmente il prototipo di JQLite dopo aver caricato jQuery:

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

Tuttavia, poiché questo non è progettato per l'uso dijQuery con Angular potrebbe causare problemi indesiderati. Ma se la tua unica intenzione è quella di estendere angular.element con alcuni utili metodi jQuery, questo dovrebbe andare bene.

Controlla la demo qui sotto per vedere come sono disponibili i metodi di jQuery angular.element anche se jQuery viene caricato dopo Angular.

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