jQuery CDN 속도문제
Dev

jQuery CDN 속도문제

2015. 10. 5. 12:30

언젠가부터 블로그 접속 속도가 무척이나 느려졌다. 굉장히 자주 화면에 아무것도 안나오는 상태로 멈춰있었다. 뭔가 서버 리스스 하나가 response를 주고 있지 않는 것 같았다. 내 블로그에 문제가 생긴건가 싶어서 정말 짜증이 났다. 이걸 해결하려면 어디서부터 시작을 해야하나 티스토리에 문의를 해야하나 짜증은 났지만 참고 찾아보기 시작했다.

원인

처음엔 티스토리 서버에 문제가 생긴 줄 알았는데 가만보니 jquery가 문제였다. 로딩 속도를 빨리하고 싶어서 쓴 cdn인데 여기서 무한정 대기가 걸려있던 거다. 사용하고 있던 cdn은 jquery에서 공식적으로 제공하는 code.jquery.com 서버다.

찾아보니 jQuery CDN 속도 비교를 한 곳도 있다. 무려 2010년에 작성된 글인데 지금까지 이 문제가 있는 것 같다. 지금도 이 문제가 유효할까 싶어 확인을 해보기로 했다.

확인

간단히 리소스 다운로드를 하고 시간을 출력하는 스크립트를 만들어서 확인한 결과다. 놀랍게도 code.jquery.com은 로딩 실패가 2번에 평균 1초가 넘는다. 물론 네트웍 상황에 따라 다르겠지만 code.jquery.com은 적어도 나는 사용해선 안되는 cdn이다.

#!/usr/bin/env php
<?

class Resource {
	public $provider;
	public $url;

	public function __construct($provider, $url) {
		$this->provider = $provider;
		$this->url = $url;
	}

	public function check() {
		$beforeTime = round(microtime(true) * 1000);
		if ($fp = fopen($this->url, 'r')) {
			while (fread($fp, 1024)) {
				echo(".");
			}
			$timeDiff = round(microtime(true) * 1000) - $beforeTime;
			echo(" {$timeDiff}ms\n");
		} else {
			echo("Read failed\n");
		}
	}

	public function toString() {
		return $this->provider . " : " . $this->url;
	}
}

$jqueryResources = array(
	new Resource("Google", "https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"),
	new Resource("MS", "https://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.4.min.js"),
	new Resource("CDNJS", "https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"),
	new Resource("JSDelivr", "https://cdn.jsdelivr.net/jquery/2.1.4/jquery.min.js"),
	new Resource("jquery", "https://code.jquery.com/jquery-2.1.4.min.js")
);

foreach($jqueryResources as $resource) {
	echo ($resource->toString() . "\n");
	$resource->check();
}
반응형