0

所以这是一个很奇怪的问题,但基本上我有一个服务器,它可以使用自己的 asp 指令从 PLC 中读取数据。您可以创建自己的网页以放在可以使用这些 asp 指令的服务器上。所以我有一些非常基本的 html 代码,其中包含一些 javascript 和一些 asp 指令,以从 PLC 获取数据。PLC 中的值不断变化,我希望页面不断更新这些值。我尝试使用元重新加载,但屏幕闪烁,它不是很好。我还尝试使用 java 脚本在间隔后刷新,我设法让计数器工作而无需更新整个页面,但 asp 不会更新(看来您需要重新加载页面以刷新 asp 值)。有没有办法请求服务器刷新asp值,无需重新加载实际网页?还是有更好的方法来完全做到这一点?这是我尝试过的一些代码,因此您基本上可以看到发生了什么:

<script type="text/javascript">
window.onload = setupDataRefresh;
function setupDataRefresh() {
  setInterval("refreshData();",100);
}
function refreshData() {
  document.getElementById("Tag0").innerHTML="<% ReadLogixTag("1,0","doLight","BOOL");%>";
}
</script>

在上面的代码中,asp 代码 ReadLogixTag 特定于服务器设备。任何帮助将不胜感激。

谢谢,

杰克

4

1 回答 1

1

看看这里它是一个很棒的库 - 基本上它是经典 asp 中 php xajax 的实现。

你可以自己做到这一点,但 ajaxed 有一些有用的其他类......

基本上你在你的javascript方法refreshData()中做了一个ajax请求(例如使用jQuery)。在服务器端执行 ReadLogixTag() 并将 html 代码发送回客户端。

示例(使用 jQuery 且没有 ajaxed):

<%

if request.form("ajax") = true then
  call ReadLogixTag( Request.Form("param1"), Request.Form("param2"), Request.Form("param3") )
end if

sub ReadLogixTag(param1, param2, param3)
  ' do stuff
  response.write "<b>" & param1 & "</b>"
end sub

%>

<script type="text/javascript">
window.onload = setupDataRefresh;
function setupDataRefresh() {
  setInterval("refreshData();",100);
}
function refreshData() {
  $.post("myASPPage.asp", {
    ajax: true,
    param1: "1,0",
    param2: "doLight",
    param3: "BOOL"
  }, function(data) {
    $("#Tag0").html(data);
  });
}
</script>

<div id="Tag0"></div>
于 2013-01-08T06:45:47.367 回答