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 回答