2011-04-30 12 views
0

스크립트 태그 블록 실행으로 document.write를 만드는 방법을 아는 사람이 있습니까? js.php이스크립트 태그로 자바 스크립트 document.write 만들기

<script type="text/javascript"> 
    var test = "bad"; 
    document.write('<script type="text/javascript" src="js.php"><\/script>'); 
    console.log(test); 
</script> 

<?PHP sleep(1); echo "var test='good';"; ?> 

을 console.log는하지만, "나쁜"출력 "좋은"출력한다. 물론, 1 초 후, var는 "good"로 바뀌지 만 확실히 차단해야합니다. 감사!!

나는 어떤 일이 벌어지는 지 알아 보았다. 현재 스크립트 블록 뒤에 현재 스크립트 블록의 document.write가 실제로 올바르게 작성된 것 같습니다. .

답변

1

더 많은 데이터를로드하려면 Ajax 호출을 수행하십시오. 이 기능은 사용자 정의 할 수 없습니다. jQuery와 JSON으로 쉽게 할 수 있습니다.

+0

그러나 아약스/XHR은 항상 바로 비 차단? – nolanpro

+0

ajax 호출이 완료된 후에 만 ​​스크립트를 시작하도록 콜백을 정의 할 수 있습니다. ajax 호출이 수행되는 동안 웹 사이트에 "로드 중"애니메이션을 추가하고 콜백에서 제거 할 수도 있습니다. – Afiefh

+1

@nolanpro XHR은 XMLHttpRequest 객체의 (a) 동기 플래그를 사용하여 블로킹 할 수도 있습니다. 이것은'open' 메소드의 세 번째 매개 변수입니다. 이는 'AJAX'가 XHR에 적합한 용어가 아닌 이유 중 하나입니다. – KooiInc

2

내가 <script> 태그를 작성하기위한 해결되는이 기억하는 것 :

document.write('<scr'+'ipt type="text/javascript" src="js.php"><\/scr'+'ipt>'); 
+0

불행히도 여전히 작동하지 않습니다. 크롬 & 파이어 폭스를 사용하고 있습니다. 어쨌든 고마워! – nolanpro

관련 문제