取消之前对谷歌地图地理编码方法的调用
Cancel previous call of Google Maps geocode method
我正在使用Javascript和Google Maps地理编码方法(在输入时使用keyup事件(实现自动完成功能,有时我在实际搜索之前收到先前的搜索。
我的目的是取消之前的通话,如果它还没有结束。有人可以帮助我吗?
getAddressLatLng : function(text,callback) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
address : text,
region : Utils.getRegion()
},
function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
callback(results);
}
});
},
您可以创建一个全局请求计数器,并且仅在回调行为不增加时才执行回调行为。
例如var requests = 0;
...
getAddressLatLng : function(text,callback) {
var requestNum;
requests++;
requestNum = requests;
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
address : text,
region : Utils.getRegion()
},
function(results, status) {
if(requestNum != requests) return;
if (status == google.maps.GeocoderStatus.OK) {
callback(results);
}
});
},
我还建议对函数进行去抖动/限制,这样您就不会浪费带宽生成不必要的请求(下划线具有方便的函数来执行此操作(。
相关文章:
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- javascript从子方法调用父方法
- 我应该返回一个类似console.log()的方法调用吗
- NodeJS-从同一文件中的另一个方法调用一个方法
- 使用restangular save方法调用put与post时的控件
- 从实例方法调用实例方法
- Node.js-异步方法调用问题
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- 向模板实例变量传递调用方法调用的结果时出现异常
- jQuery 方法调用了两次
- 不能从 Backbone.View 的方法调用 Backbone.collection 的方法,其中包含 require
- 组合 onLayout 的方法调用
- lodash/下划线 - 使用绑定与方法调用和方法保持未绑定
- 从公共方法调用模块的私有函数
- 如何对 jqGrid 的 loadComplete 和 onSelectRow 进行基因预和后方法调用
- 完全限定的 JavaScript 方法调用
- 为什么我在 Angular JS 中收到两个方法调用
- 如何在从排序方法调用参数时将其传递给回调
- 我在jQuery中有一个循序渐进的过程,有没有更好的编码方法
- 取消之前对谷歌地图地理编码方法的调用