2012-07-01 2 views
5

일반적으로 jQuery가 CDN에서로드되었는지 확인하고 그렇지 않은 경우 로컬 버전으로 폴백합니다.html 5 shim이로드되었는지 확인

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

나는 트위터 부트 스트랩을 사용하고, 그리고 그것은 googlecode 사본에서 HTML 5 심 (shim)을로드합니다.

<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>

googlecode

에서로드하지 않습니다 아니면 내가 뭔가 잘못하고있는 중이 야 만약 내가 로컬 버전으로 폴백 할 수있는 방법이 있습니까. 이걸 검사할까요?

답변

11
<script>window.html5 || document.write('<script src="js/libs/your-local-version.js"><\/script>')</script> 
+0

로컬 버전 만 사용하겠습니다. 답장은 분명히 대답 할만한 질문입니다. 그것은 작동합니다! – Jashwant

+2

document.write를 사용하지 마십시오 ... 추측 적 파서가 삽입 한 스크립트를로드 할 수 없으며 코드가 실행될 때까지 기다려야하며 JS가 그 아래에있는 다른 DOM 요소보다 먼저로드 할 때까지 기다려야합니다 렌더링 될 수 있습니다 http://www.stevesouders.com/blog/2012/04/10/dont-docwrite-scripts/ –

4

jQuery (오랫동안 토론하고 열지 않으려는 웜이 될 수 있습니다.)로 돌아가는 것을 귀찮게하지 않을 것이지만, 그건 당신에게 달려 있습니다.

googlecode에서 html5.js를로드하면 더 많은 문제가 발생할 것이라고 생각합니다. 로컬로 호스트해야합니다. 왜? 왜냐하면 SVN 트리의 트렁크에서 코드를 직접 참조하기 때문입니다. 이 코드는 변경 될 수 있으며 테스트되지 않은 상태가됩니다. Google 코드에서 특정 버전을 참조 할 수도 있고, 실제로 직접 호스팅 할 수도 있습니다.

+0

이제 모든 문제를 이해했습니다. +1 – Jashwant

1

html5shim을 사용하는 경우 처음에는 로컬로로드하는 것이 좋습니다. 그들의 웹 사이트에서 그들은 최근에 당신이 GitHub에서 핫 링크하지 않고 파일을 다운로드하도록 말씨를 변경했습니다.이 파일은 테스트되지 않은 코드를 호스트 할 수 있습니다.

+0

정보를 주셔서 감사합니다 +1 – Jashwant

4

호스트 로컬 칼, 구글에서 그것을 사용하는 많은 문제가 있습니다 (안 DNS 최대 등 모양 이상) 더 참조 - 내가 귀찮게하지 것이라고 jQuery를 콜백 코드로 http://zoompf.com/blog/2012/05/html5shiv-and-serving-content-from-code-repositories

, 사용자는 것입니다 콜백이 발생하기 오래 전에 페이지가 손상되었다고 생각하십시오.

페이지의 URL을 알려 주시면 설명하겠습니다.

+0

정보의 멋진 조각. +1. 나는 블라디미르의 대답을 표시해야하는데, 그 질문에 정확하게 대답하기 때문이다. 그러나 그렇습니다, 나는 google의 버전을 확실히 사용하기 위하여려고하고 있지 않다. – Jashwant

+0

문제가 블라디미르의 코드에는 퍼포먼스 측면에서 나쁜 습관이있다 :-( –

+0

블라디미르의 코드를 사용하지 않을 것이다. 나는 당신의 제안에 동의한다. 이제는 cdn jQuery조차 사용하지 않을 것이다. '그러나 그의 대답 내 질문에 대한 대답이었다 .' – Jashwant