javascript - Ajax延迟请求

标签 javascript php jquery ajax

我的行为很奇怪,

我在第一次调用后连续调用ajax,第一个是在下拉选择上,另一个是在延迟上连续调用,第一个在从下拉列表中选择城市后调用,我将该值存储在全局变量中,

$('.selectCity').change(function () {
    var city = $(this).val();
    ...
    ...

然后我在 ajax 调用中使用该city,如下所示:

var timer, delay = 3000;

timer = setInterval(function(){
    $.ajax({
    type: 'GET',
    url: '/riders/location/track',
    data: {
       'city': city
    },
    ...
    ...
    ...

当我选择一个城市时,假设伦敦然后延迟ajax请求调用,结果符合预期,

但是当我再次选择另一个城市时,比如说波士顿,那么延迟方法会调用两次伦敦,另一个波士顿 >,这应该只需要波士顿

最佳答案

您的问题是,您为每个城市更改定义了一个间隔,但在城市更改后没有清除它,因此您得到了累积的间隔。

setInterval(callback, ms)

Schedules callback to be called repeatedly every ms milliseconds. Any additional arguments are passed straight through to the callback.

如果您只想延迟 Ajax 请求一次,则应使用 setTimeout api。

关于javascript - Ajax延迟请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46313694/

相关文章:

javascript - 在javascript中将图像数组插入到提示框中

PHP 回显和重定向

php - cURL 和 PHP : Stop output to screen

php - 如何使用 utf-8 编码 mySQL 连接

javascript - 无法创建动态 div 以在单击和返回时更改大小

php - 从mysql检索数据无输出

javascript - 大量对象上的 JSON.parse() 使用的内存超出了应有的范围

javascript - 字符串操作以查找字符串中的变量

javascript - 放置 Javascript 片段以在呈现之前更改页面的 DOM 的最佳位置在哪里

jQuery SlideUp/Down 不断重复?