2013-08-08 1 views
-4
사용할 수없는

에 로컬 저장소에 좀 도움이 필요합니다. 내 소스 코드에 대한 대체 시스템을 만들고 싶습니다. 내 자바 스크립트와 CSS와 이미지를 호스팅하는 cdn을 사용하고 있습니다. 내가 뭘하려는 PHP 예를 들어 말할 것이다 폴백을 만드는 것입니다 123.456.789는 400ms에서 사용할 수 없습니다 PHP는 987.654.321에 내 로컬 스토리지를 가져올 것입니다대체 자바 스크립트 PHP와 CDN에서

그래서 뭔가를 생각하고 있었는데 (나 맨 손으로, 단지 amatuer 예) 이것의 라인

if ip 123.456.789 in 400ms 

//show this file from 123.456.789 

else 

//show this file from 987.654.321 

내 소스 코드는 하드와 같은 코딩 한 : 123.456.789가 400ms 일에 사용할 수없는 경우에 따라서

<script type="text/javascript" src="123.456.789/js/jquery.js"></script> 

나는 것 이 하나가로드하는 것처럼

<script type="text/javascript" src="987.654.321/js/jquery.js"></script> 
+0

어떻게 123.456.789에 연결하고 있습니까? 당신이 400ms 일 이상 걸릴 수 있습니다 데이터에 액세스 내가 –

+0

문제입니다. –

+0

이 순수 JS와 함께 할 수있는 최선의 방법을 제안하거나 타임 아웃 세트 PHP에서 컬 요청을 할 수 있다는 것을 아는 방법 –

답변

2

(210)는 내가 얼마 전에 내 자신의 질문에 대답했다. 그래서 여기에서 공유하기로 결정했습니다.

<?php 
//debug off by default 
error_reporting(0); 

//cdn fallback 
if (!isset($_GET['aws_cdn'])) { 

     $cdn_fallback = curl_init('http://123.456.789/'); //Set to CDN IP or URL 
     curl_setopt($cdn_fallback, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($cdn_fallback, CURLOPT_NOSIGNAL, 1); 
     curl_setopt($cdn_fallback, CURLOPT_TIMEOUT_MS, 400); //How many milliseconds before fallback to local storage 

     $data = curl_exec($cdn_fallback); 
     $curl_errno = curl_errno($cdn_fallback); 
     $curl_error = curl_error($cdn_fallback); 
     curl_close($cdn_fallback); 

     if ($curl_errno > 0) { ?> 
    <script type="text/javascript" src="http://example.com/js/jquery.js"></script> 
     <?php } else { ?> 
    <script type="text/javascript" src="http://123.456.789/cdn/js/jquery.js"></script> 
     <?php }} ?>