2013-05-19 82 views
1

我是新來學習TCL和ADP ,,我的Ajax代碼不是從TCL文件雖然它發送一個請求,所以我想,也許我應該響應添加一個命令返回結果,請幫助我下面的代碼:應該將ns_return/ns_respond添加到我的代碼中嗎?

<html> 
    <body> 
    <form action=""> 
    <input value="Get Time" type="button" onclick="showCurrentTime();" name="GetTime"> 
    <div id="result" align="center"></div> 
    </form> 
    <script language="Javascript"> 
    function showCurrentTime() 
    { 
var xmlhttp; 

if (window.XMLHttpRequest) { 
    xmlhttp=new XMLHttpRequest(); 
} 
xmlhttp.onreadystatechange=function() 
{ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     document.getElementById("result").innerHTML=xmlhttp.responseText; 
    } 

    xmlhttp.open("GET","time.tcl",true); 
    xmlhttp.send(); 
} 
    } 
    </script> 

    </body> 

請注意,TCL文件是否工作正常打印的時間,所以如果我需要添加的命令ns_return或命令ns_respond請加一些解釋, 在此先感謝:)

回答

1

您可能會發現使用更容易圖書館,因爲它可以讓你更簡潔地編寫你的客戶端代碼。 (請注意,我喜歡把我的Javascript使用的鏈接在<head>部分,然後通過引用拉他們,因爲這有助於調試在複雜的情況下。)

<html> 
<head> 
    <script src="jquery.js"></script> 
    <link id="timer" href="time.tcl" /> 
</head> 
<body> 
<form action=""> 
<input value="Get Time" type="button" onclick="showCurrentTime();" name="GetTime"> 
<div id="result" align="center"></div> 
</form> 
<script language="Javascript"> 
var timerURL = $("#timer")[0].href; 
function showCurrentTime() { 
    $.get(timerURL, function(response) { 
     $("#result").html(response); 
    }); 
} 
</script> 
</body> 

接下來,您需要檢查什麼內容類型的服務器的響應是。你應該確保它是text/plain,如果我明白你在這種情況下要做的是什麼。如果我讀過的文檔ns_respond吧,你想要做的事,如:

ns_respond -type "text/plain" -string [clock format [clock seconds]] 

更一般地,返回JSON往往更加有用的,你再想要顯示它稍有不同的技術。

+0

你也可以使用'ns_return 200 text/plain [clock format [clock seconds]]'我想。 'ns_respond'雖然有點靈活。 –

+0

非常感謝@Donal Fellows的大力幫助和jQuery代碼,它更簡單:)但我還是不習慣它... 它完美的工作:)謝謝你一遍又一遍! – sisimh

相關問題