16 February 2015

Не CDN единым

Website developmentjQueryIT Standards
From Sandbox
В последнее время стало модно говорить о доступности при разработке сайтов, писать rel, alt, делать версию для слабовидящих и так далее, однако почему бы сначала не подумать о нормальных пользователях. Подключая jQuery из CDN:

<script src="http://code.jquery.com/ui/1.9.0/jquery-ui.js"></script>

… многие забывают очень важную деталь.

Конечно же, нужно не забывать проверить, подгрузилась ли библиотека, и если нет, то подгрузить с собственного сайта. Для этого можно просто добавить:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.11.2.min.js"><\/script>')</script>

Это настолько просто, однако, многие крупные сайты грешат тем, что забывают про это. Реальный пример – крупный ресурс, завязанный на работу с клиентами из Китая, забыв про эту проверку, сделал невозможной работу этих клиентов с их сайтом, если клиент не использовал vpn. Причина проста: подгружали с CDN гугла, а в Китае почти все гугловское заблокировано (被和谐了).

Разработчики, пожалуйста, не забывайте об этом!

Ну а тех, кто не хочет замарачиваться с vpn, и при этом хочет чтоб скрипты с ajax.googleapis.com подгружались, можно порекомендовать следующий совет:
В файле hosts пропишите следующую строку
127.0.0.1	ajax.googleapis.com

Затем установить python, если он ещё не установлен в системе, и запустить скрипт:
#-*- coding: utf-8 -*-
import SocketServer
import SimpleHTTPServer
import urllib
import os

PORT = 80

class Proxy(SimpleHTTPServer.SimpleHTTPRequestHandler):
    def do_GET(self):
        if '/ajax/libs/' in self.path:
            self.path = self.path.replace('/ajax/libs/','http://yastatic.net/')
            self.copyfile(urllib.urlopen(self.path), self.wfile)

if os.name == 'posix':
    httpd = SocketServer.ForkingTCPServer(('', PORT), Proxy)
else:
    httpd = SocketServer.ThreadingTCPServer(('', PORT), Proxy)

print "serving at port", PORT
httpd.serve_forever()

При этом, естественно, нужно убедиться в том, что скрипты с yastatic.net у вас грузятся.
Tags: cdn google Китай желтая угроза vpn
Hubs: Website development jQuery IT Standards
+51
44.9k 197
Comments 47
Ads