Cloud9 IDE에서 동적으로 JavaScript를로드하는 데 문제가 있습니다 (https://c9.io/etlolap/webapp).Cloud9에서 동적 JavaScript로드시 jQuery 문제
(https://c9.io/etlolap/webapp/socket.js)의 서버 파일은 프로젝트의 파일 시스템을 모니터링하고 변경된 파일을 감지하며 변경된 파일을 socket.io를 통해 클라이언트에 보냅니다. 그것은 잘 작동하므로 여기에 내용을 직접 넣지 않아도됩니다.
데이터 파일 (https://c9.io/etlolap/webapp/public/js/data.js)에는 한 줄만 포함됩니다.
이var b = "Goodbye!";
(https://c9.io/etlolap/webapp/socket.html)의 클라이언트 파일이 data.js.에서 변수 B의 값을 표시합니다
var b = "Hello World!";
나중에, 우리는로 변경 파일이 변경된 경우 ("Goodbye!"
), data.js의 새 버전이 다시로드되고 b의 새 값이 자동으로 표시됩니다.
<!doctype html>
<!--socket.html- dynamic JS loading example -->
<html>
<head>
<script type="text/javascript" src="https://webapp-c9-etlolap.c9.io/public/js/jq/jquery-1.9.1.js"></script>
<script src="https://webapp-c9-etlolap.c9.io/socket.io/socket.io.js"></script>
<script id="script_a" src="https://webapp-c9-etlolap.c9.io/public/js/data.js"></script>
<script>
$(function(){
$('body').html(b);
});
io.connect("https://webapp-c9-etlolap.c9.io")
.on('script', function(path){
$('#script_a').remove();
$('head').append(
'<script id="script_a" src="https://webapp-c9-etlolap.c9.io'
+ path +
'"></scr' + 'ipt>'
);
$('body').html(b); //<---culprit!
});
</script>
</head>
<body>
Loading...
</body>
</html>
모든 것이 socket.io를 포함하여 잘 작동합니다. 유일한 문제는 b의 새 값을 새로 고칠 수 없다는 것입니다. 디버거에서는 iolconnect(). on() 내부의 $('body').html(b);
에서 b의 새 값이 새로 고쳐지지 않고 여전히 "Hello World!"
이라는 것을 보여주었습니다.
복용량을 아는 사람은 누구입니까? 새 버전의 data.js를 socket.html에 새로 고침하려면 어떻게해야합니까?
그리고 클라우드 십오 일을 피하려고하는 이유는 – Markasoftware