1

私は tcl と adp を学習するのが初めてです。リクエストを送信しても、私の ajax コードは tcl ファイルから結果を返さないので、応答用のコマンドを追加する必要があると思いました。以下のコードで私を助けてください:

    <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 を追加する必要がある場合は、説明を追加してください。よろしくお願いします :)

4

1 に答える 1

1

クライアント側のコードをより簡潔に記述できるため、Javascript でjQueryライブラリを使用する方が簡単な場合があります。(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 を返す方が便利なことがよくありますが、それを表示するために少し異なる手法が必要になります。

于 2013-05-19T11:12:55.513 に答える