【发布时间】:2015-06-20 14:24:22
【问题描述】:
我使用 Delphi XE7。当我的 Javascript 调用需要大约 800 毫秒来读取传感器并返回数据的服务器函数时,浏览器从我单击按钮调用 Javascript 的那一刻起一直没有响应,直到它最终响应返回。我正在使用代理 var serverMethods().getChannel(i); 生成的默认 Javascript 来调用我的服务器函数。
Javascript 调用如下所示:
var s = serverMethods().getChannel(i);
serial[i].$sensorlValue.text(s.result.fields.sensorString);
serial[i].$sensorlRealValue.text(s.result.fields.sensor);
serial[i].$sensorStatus.text(s.result.fields.sensorStatus+' '+s.result.fields.name);
serial[i].$sensorError.text(s.result.fields.sensorError);
serial[i].$AVString.text(s.result.fields.AVString);
serial[i].$AVError.text(s.result.fields.AVError);
所以默认情况下没有 Javascript 回调或承诺,所以 embaracaderom 设法阻止 Javascript 执行,直到响应返回并变量 a 接收值?
我正在考虑尝试在 URL 上使用 jQuery Ajax 调用,但是还有其他解决方案吗?
因为 serverMethods 是从代理生成的,但对于 $ajax 我需要手动设置它们中的每一个。或者我在这里做错了什么,可以使用 serverMethods 而不会阻塞?
谢谢。
【问题讨论】:
-
别傻了,我知道这是浏览器端的 JS 问题,它与 delphi 服务器有任何关系,因为它生成客户端 JS,并且它用像这样工作的示例生成它,所以它拥有delphi的一切,因为他们从代理生成器中提供了这段代码。
标签: javascript rest delphi delphi-xe7 datasnap