我的JavaScript中有一个循环在不断检查变量EventCounter,如果eventcounter为零,则它会继续执行操作,然后递增++,然后它什么也不做,直到变量更改,这是代码:EventCounter = {{eg.globals.EventCounter}}; for(var i = 0; i < n; ++i) { r = rects[i]; ctx.strokeRect((r.x*sc)|0,(r.y*sc)|0,(r.width*sc)|0,(r.height*sc)|0); window.rects = rects[i]; //console.log(EventCounter); if (EventCounter === 0) { console.log("event counter is" + EventCounter) //setTimeout( function () {document.getElementById("sb").click()}, 5000) EventCounter++ console.log("event counter is now " + EventCounter); } } }现在,EventCounter全局变量从Web服务器(其python Web服务器及其python变量)获取其值。但是我的问题是如何检测Web服务器上的变量已更改?一个ajax请求吧?我将如何请求变量值来检测它是否已更改,以便循环可以再次运行?(**该服务器与PHP不兼容)
4 回答

jeck猫
TA贡献1909条经验 获得超7个赞
您可以像Mike W建议的那样使用WebSocket。
您也可以在python服务器上编写一个脚本,该脚本在调用时返回JSON,然后在JSON文件中包含所需的变量及其值。所有浏览器都将支持此功能,而不仅仅是WebSockets要求的现代浏览器。

POPMUISE
TA贡献1765条经验 获得超5个赞
看一下WebSockets,它允许服务器在建立连接后随时向浏览器发送消息。您可以使用Javascript事件处理程序处理传入的消息,从而避免了连续轮询的需要。
所有主流浏览器(包括IE10)都支持WebSockets。当然,您必须确保您的服务器应用程序也可以支持WebSockets。
添加回答
举报
0/150
提交
取消