$ (slector) .load (‘page.html #id’) vs $ .get e filter / find #id

Vorrei sapere se c’è qualche differenza nella perfomance (o differenza)

Tra questo:

$(selector).load('page #myid'); 

e

 $.get('page',function(data){ $(selector).html( $(data).find('#myid') ); /* depending the dom tree it should be .filter() */ }) 

Direi che usare load () o .get () ha più a che fare con le tue intenzioni e i tuoi requisiti piuttosto che con le prestazioni.

Caricare()


.load() è per il caricamento facile / semplice di un documento o di una parte di esso.
Caricherà il documento completo e quindi usando innerHTML analizzerà l’HTML per restituire solo la parte a cui sei interessato.

Se hai solo bisogno di un modo veloce per caricare alcuni contenuti in un div, $(element).load(url, selector) è la strada da percorrere. Suppongo che load() sia ottimizzato per questo.

Ottenere()


A differenza di load() , .get() consente l’impostazione di dataType per una maggiore flessibilità come JSONP per le richieste tra domini.

Implementa anche l’interfaccia di promise , dandole tutte le funzionalità di un Deferred Object .

Dai documenti:

L’interfaccia Promise consente inoltre i metodi Ajax di jQuery, tra cui $ .get (), per concatenare più callback .done (), .fail () e .always () su una singola richiesta e persino per assegnare questi callback dopo che la richiesta potrebbe Completato. Se la richiesta è già completa, la richiamata viene immediatamente triggersta.

Sommario


A un livello molto basilare, non dovrebbe esserci alcuna differenza di prestazioni .load(url, selector) tra un semplice .load(url, selector) e .get(url, callback) . L’utilizzo di entrambi dovrebbe andare bene.

Penserei, non c’è giusto o sbagliato qui in quanto tale. Usa ciò che più si adatta alle tue esigenze.

Fai una domanda simile a:

Hai bisogno di un dominio incrociato (JSONP)?
Hai bisogno di catena .fail() , .done() , ecc.?
Hai bisogno di una delle funzioni get() offerte che load() non ha?

Se usi load() o get() dipende dalle tue esigenze. Le prestazioni sono secondarie in questo caso.