부부 문제 : 당신은 XMLHttpRequest
(일명 아약스)와 타임 아웃 임계 값을 사용할 수 있지만이 otherserver.com
에 이후 당신은 XMLHttpRequest
을 사용할 수 없습니다 (그리고 모든 A-등급 브라우저 지원)으로 인해 Same Origin Policy restriction에 있습니다. 스크립트가 글로벌 이름의 종류 (예를 들어 어떤 변수 이름, 함수 이름, 등) 당신은 그것을 계속 확인 setTimeout
을 시도 할 수 있습니다를 소개하면
: 나는 그것이 보는 바와 같이
var TIMELIMIT = 5; // seconds until timeout
var start = new Date;
setTimeout(function() {
// check for something introduced by your external script.
// A variable, namespace or function name here is adequate:
var scriptIncluded = 'otherServerVariable' in window;
if(!scriptIncluded) {
if ((new Date - start)/1000 >= TIMELIMIT) {
// timed out
alert("Please try again")
}
else {
// keep waiting...
setTimeout(arguments.callee, 100)
}
}
}, 100)
문제는, 당신은 할 수 없습니다 스크립트 요청을 취소하십시오. 내가 틀렸다면 누군가가 나를 바로 잡아 주지만, DOM에서 <script>
을 제거하면 브라우저의 리소스 요청이 활성 상태로 남습니다. 따라서 은을 검색하면 스크립트가로드되는 데 x 초보다 오래 걸리므로 은 요청을 취소 할 수 없습니다.
운이 좋지 않을 수도 있습니다.
... 또한 ... 내 서버는 php (또는 다른 어떤 것도 .. 야후 스토어)를 지원하지 않으며 원격 서버가 내가 잡아 당기는 다른 도메인에 있습니다. –
나는 거기에 있다고 생각하지 않습니다. 이 일을 다른 방법으로 처리하는 것보다 가능한 한 페이지의 특정 자바 스크립트를 낮추는 것입니다. 따라서 나머지 페이지는 기다리는 동안로드됩니다. –