[javascript] Da dove viene inclusa la libreria jQuery? Google JSAPI? CDN?



7 Answers

Un motivo per cui si potrebbe voler ospitare su un server esterno è quello di aggirare le limitazioni del browser delle connessioni concurenti a un particolare server.

Tuttavia, dato che il file jQuery che si sta utilizzando non cambierà molto spesso, la cache del browser si avvierà e renderà il punto discutibile per la maggior parte.

Il secondo motivo per ospitarla su un server esterno è quello di ridurre il traffico sul proprio server.

Tuttavia, data la dimensione di jQuery, è probabile che sarà una piccola parte del tuo traffico. Probabilmente dovresti cercare di ottimizzare il tuo contenuto reale.

Question

Ci sono alcuni modi per includere jQuery e jQuery UI e mi chiedo che cosa stanno usando le persone?

  • Google JSAPI
  • Il sito di jQuery
  • il tuo sito / server
  • un altro CDN

Recentemente ho utilizzato Google JSAPI, ma ho scoperto che è necessario molto tempo per impostare una connessione SSL o anche solo per risolvere google.com. Ho usato il seguente per Google:

<script src="https://www.google.com/jsapi"></script>
<script>
google.load('jquery', '1.3.1');
</script>

Mi piace l'idea di utilizzare Google, quindi è memorizzato nella cache quando visito altri siti e per risparmiare larghezza di banda dal nostro server, ma se continua a essere la parte lenta del sito, posso cambiare l'inclusione.

Cosa usi? Hai avuto problemi?

Modifica: visitato il sito di jQuery e usano il seguente metodo:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

Edit2: Ecco come ho incluso jQuery senza problemi nell'ultimo anno:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>

La differenza è la rimozione di http: Rimuovendo questo, non è necessario preoccuparsi di passare tra http e https.




Pro: Host su Google ha vantaggi

  • Probabilmente più veloce (i loro server sono più ottimizzati)
  • Gestiscono correttamente la cache - 1 anno (facciamo fatica ad avere il permesso di apportare le modifiche per ottenere le intestazioni direttamente sui nostri server)
  • Gli utenti che hanno già un link alla versione ospitata da Google su un altro dominio hanno già il file nella loro cache

Contro:

  • Alcuni browser potrebbero vederlo come XSS cross-domain e disabilitare il file.
  • In particolare gli utenti che eseguono il plugin NoScript per Firefox

Mi chiedo se è possibile INCLUDERE da Google, quindi verificare la presenza di alcune variabili globali o somesuch e se l'assenza viene caricata dal proprio server?




Ho appena incluso l'ultima versione dal sito jQuery: http://code.jquery.com/jquery-latest.pack.js Si adatta alle mie esigenze e non devo mai preoccuparmi dell'aggiornamento.

EDIT: per una grande applicazione web, certamente controllarlo; scaricalo e servilo da solo. Ma per il mio sito personale, non me ne potrebbe importare di meno. Le cose non scompaiono magicamente, di solito sono deprecate per prime. Continuo abbastanza per sapere cosa cambiare per le versioni future.




Se sono responsabile per il sito "live", è meglio che conosca tutto ciò che succede nel mio sito. Per questa ragione, io stesso ospita la versione jquery-min sullo stesso server o su un server statico / esterno, ma in entrambi i casi una posizione in cui solo io (o il mio programma / proxy) posso aggiornare la libreria dopo aver verificato / testato ogni cambiamento




Lo faccio con gli altri miei file js sul mio server e, a quel punto, li combiniamo e li riduciamo (con django-compresser, qui, ma non è questo il punto) da servire come un solo file js, con tutto il sito ha bisogno di metterci dentro Dovrai comunque pubblicare i tuoi file js, quindi non vedo alcun motivo per non aggiungere anche i byte jQuery aggiuntivi - altri kbs sono molto più economici da trasferire, rispetto a più richieste da fare. Non sei dipendente da nessuno, e non appena il tuo minified js viene memorizzato nella cache, sei anche super veloce.

Al primo caricamento, una soluzione basata su CDN potrebbe vincere, poiché è necessario caricare i jilery kilobyte aggiuntivi dal proprio server (ma, senza una richiesta aggiuntiva). Dubito che la differenza sia evidente, però. E poi, al primo caricamento con cache cancellata, la tua soluzione hostata sarà probabilmente molto più veloce, a causa di più richieste (e ricerche DNS) necessarie, per recuperare il jQuery CDN.

Mi chiedo come questo punto non sia quasi mai menzionato, e come i CDN sembrano conquistare il mondo :)




Potrei essere una vecchia scuola per questo, ma continuo a disapprovare il collegamento a caldo. Forse Google è l'eccezione, ma in generale, è davvero solo buone maniere ospitare i file sul tuo server.




Se si desidera utilizzare Google, il collegamento diretto potrebbe essere più reattivo. Ogni libreria ha il percorso elencato per il file diretto. Questo è il percorso di jQuery

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>

Rileggi la tua domanda, c'è un motivo per cui stai usando https? Questo è il tag script Google elenca nel loro esempio

<script src="http://www.google.com/jsapi"></script>
<script>



Oltre alle persone che consigliavano di ospitarla sul proprio server, avevo proposto di tenerlo su un dominio separato (ad esempio, static.website.com) per consentire ai browser di caricarlo in un altro thread di contenuto. Questo suggerimento funziona anche per tutte le cose statiche, ad esempio immagini e css.






Related