我目前正在使用网络框架编写Python应用程序。我实现了一个调用javascript函数,调用Python WebService的表单。这些Web服务非常繁重,因此我想实现一种安全性,以避免多次运行javascript,并等待WS响应再允许另一个调用。
这是一段HTML:
<div class="form-group">
<input onfocusout="ocr_on_fly(false, this)" onfocusin="ocr_on_fly(true, this)" type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
</div>
ocr_on_fly
函数中JS中的WS调用:
onSelectEnd: function(img, selection){
if(selection['width'] !== 0 && selection['height'] !== 0){
$.post({
url: "http://localhost:5000/pdf/ocr",
data: {
data: JSON.stringify({
selection : selection,
fileName : $('#my-image')[0].src.replace(/^.*[\\\/]/, ''),
thumbSize : {width: img.width, height:img.height}
})
}
}).then(function(data) {
input.value = data['result'];
});
}
}
我听说过setTimeout,但是不确定这是更好的方法,因为我不想在指定时间内阻止脚本的执行。该脚本可能需要0.1秒,而可能需要10秒或更多时间
预先感谢
答案 0 :(得分:2)
您可以设置一个全局变量,然后在调用脚本时将其设置为true
。
然后,当响应完成时,将其设置为false
。
在发出请求之前检查此变量;如果已将其设置为true
,请不要发出请求。