107 votes

Github serve un CDN pour bibliothèques javascript ?

Servir les bibliothèques javascript à partir d'un CAN à la place de votre serveur est livré avec d'énormes avantages. Moins de travail pour votre serveur, la possibilité pour le CDN d'avoir une copie plus près de l'utilisateur de votre serveur, mais le plus important une bonne chance que votre navigateur de l'utilisateur a déjà mis en cache à partir de cette URL. Le dernier signifie moins de travail pour tout le monde, donc c'est clairement une victoire partout, et il est plus probable que le plus souvent nous (les développeurs) s'appuient sur les réseaux de diffusion de contenu pour servir notre code javascript.

Mais le populaire javascript Cdn (Google, Microsoft, autres?) seulement accueillir un petit nombre de fichiers. Pour les autres, nous avons le choix de l'hébergement de nous-mêmes, ou ... à l'aide de la source de contrôle du serveur comme une sorte de CDN. Il est peu probable que Github ou similaires sont géographiquement distribuées cache de fichiers optimisés pour servir à l'échelle mondiale. Mais si c'est une pratique courante, alors il ya une bonne chance que le navigateur de l'utilisateur, pour l'avoir mis en cache. L'argument de déchargement de travail à partir de nos serveurs de github n'est valable que si Github a se sont portés volontaires pour le faire.

Donc, il est pratique courante? Devons-nous encourager les uns les autres pour le faire? Ne Github l'esprit? Ont-ils une politique officielle?

103voto

Dave Ward Points 36006

Vous ne devriez pas le faire pour les fichiers JavaScript si vous vous souciez de la performance ou de la compatibilité IE9.

GitHub ne sert pas son "brut" des fichiers avec un présent-futur en-tête expires. Sans la possibilité de cross-site de mise en cache, vous perdez le plus grand avantage de l'utilisation d'un CDN pour accueillir votre JavaScript. En fait, l'utilisation de GitHub comme CA sera plus lent que de simplement l'hébergement des fichiers sur votre propre serveur chaque fois qu'un utilisateur de la première demande pour le fichier (en supposant que vous configurer la mise en cache correctement sur votre serveur).

Un autre problème est que GitHub ne sert pas à "raw" fichiers avec un type de contenu d'en-tête qui correspond au fichier de type MIME. Dans IE9 (et peut-être d'autres navigateurs/proxy/pare-feu/etc), les fichiers JavaScript qui ne sont pas servis avec le bon type de contenu sont bloqués par défaut. Vous pouvez voir que dans l'action sur la BlockUI page de démonstration, par exemple:

enter image description here

19voto

Chris Jacob Points 4211

Un lien vers GitHub fichiers « raw » a quelques problèmes, tels que décrits par la réponse de Dave Ward.

Je vous suggère de que vous pencher sur GitHub Pages en option.

Lire cet article :
GitHub comme un CDN. Mettre en cache vos Javascripts, les feuilles de style et les ressources du Web avec des Pages de GitHub.

12voto

Mauricio Scheffer Points 70470

Cela a été récemment posées dans les forums de support de github, et la réponse officielle était qu’il est OK.

Cela dit, je suis d’accord avec les autres réponses : github n’a jamais été vraiment destinée à une CAN, alors que Google et Microsoft ont une infrastructure spécifique pour cela.

10voto

meleyal Points 7367

C’est très bien pour prototypage / personnelle des choses, mais pour la production, je regarderais :

http://www.cdnjs.com/

http://cachedcommons.org/

5voto

Marek Karbarz Points 14870

J’aurait jamais compter sur GitHub comme un CDN pour mes projets parce que vous n’avez aucune garantie que les fichiers seront là, nommé le même chemin, à l’avenir. Avec Google/Microsoft, vous avez l’engagement, les deux sociétés d’accueillir les fichiers d’une certaine manière, avec GitHub vous avez seulement l’espoir qu’il va rester comme ça.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X