我使用Delphi XE7。當我的Javascript調用需要大約800ms的服務器函數來讀取傳感器並返回數據時,從我點擊按鈕調用Javascript直到最終響應返回的那一刻起,瀏覽器就沒有響應。我使用由代理var serverMethods().getChannel(i);
生成的默認JavaScript來調用我的服務器功能。JavaScript調用DataSnap REST使瀏覽器無響應
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直到響應回來和可變接收值?
我想嘗試在URL上使用jQuery Ajax調用,但有沒有其他解決方案?
因爲serverMethods是從代理生成的,但對於$ ajax我需要手動設置它們中的每一個。或者,也許我在這裏做錯了什麼,serverMethods可以使用而不會阻塞?
謝謝。
不要成爲smartass,我知道這是瀏覽器端的JS問題,並且它與delphi服務器一直在運行,因爲它生成了客戶端JS,並且它使用像這樣工作的示例生成它,所以它與delphi一起運行,因爲這個代碼來自這個代理生成器。 –