Javascript 加载后清除AJAX结果

Javascript 加载后清除AJAX结果,javascript,jquery,ajax,Javascript,Jquery,Ajax,我使用以下AJAX调用生成搜索建议: $(".smart-suggestions").load('id-get-data.php?searchword=' + self.value); 搜索建议将根据用户的输入返回到“div”中。我想知道是否有一种方法可以使用javascript、jquery或ajax“清除”从ajax返回的数据?删除返回的结果。如果使用load可以附加时间来“愚弄”缓存机制 $(".smart-suggestions").load('id-get-data.php?sear

我使用以下AJAX调用生成搜索建议:

$(".smart-suggestions").load('id-get-data.php?searchword=' + self.value);

搜索建议将根据用户的输入返回到“div”中。我想知道是否有一种方法可以使用javascript、jquery或ajax“清除”从ajax返回的数据?删除返回的结果。

如果使用
load
可以附加时间来“愚弄”缓存机制

$(".smart-suggestions").load('id-get-data.php?searchword=' + self.value +'&x=' +
    (+new Date()));

如果使用
load
,则可以附加时间来“愚弄”缓存机制

$(".smart-suggestions").load('id-get-data.php?searchword=' + self.value +'&x=' +
    (+new Date()));

您可以使用
$.ajax
发送请求,只需将
缓存:false
添加到选项:

$.ajax({
    url: 'id-get-data.php',
    type: 'GET',
    data: {
        searchword: self.value
    },
    cache: false,
    success: function(data) {
        $('.smart-suggestions').html(data);
    }
});

您可以使用
$.ajax
发送请求,只需将
缓存:false
添加到选项:

$.ajax({
    url: 'id-get-data.php',
    type: 'GET',
    data: {
        searchword: self.value
    },
    cache: false,
    success: function(data) {
        $('.smart-suggestions').html(data);
    }
});

“清除”是什么意思?例如,不想缓存它?是的,不想缓存它。请参阅-你说的“清除”是什么意思?例如,不想缓存它?是的,不想缓存它。请参阅-文档:“如果设置为false,它将强制浏览器不缓存请求的页面。将缓存设置为false还会附加一个查询字符串参数,”\u=[时间戳]“,指向URL。”(就像我的回答一样…)+1@gdoron:是的。我只是认为URL编码
self.value
会更干净。文档:“如果设置为false,将强制浏览器不缓存请求的页面。将cache设置为false还会将查询字符串参数“=[TIMESTAMP]”附加到URL。“(就像我的回答中一样…) +1@gdoron:是的。我只是认为URL编码
self.value
会更干净。谢谢,这似乎是一个简单的解决方案。你能解释一下为什么/如何工作吗?@MHZ,当然可以,因为浏览器现在发送一个带有不同参数的新请求,所以他不能使用缓存。浏览器无法知道时间戳不是一个真正的参数,所以…它可以工作。在我的示例中,当用户将文本输入到输入字段时,我使用AJAX填充搜索建议。用户可以使用多个输入字段来生成搜索建议。一旦用户在输入字段a中生成搜索建议,然后单击输入字段B,输入字段a的结果仍然是a在清除之前,请等待几秒钟。清除缓存似乎并不能解决此问题,但是,知道原因吗?@MHZ,抱歉,我需要更多的上下文。尝试想象两个输入字段,a和B。输入“a”允许用户使用AJAX搜索项目id(当他们键入时).Input“B”允许用户使用AJAX(在键入时)搜索项目名称。当用户尝试通过在输入a中输入文本来搜索项目编号时,单击输入B尝试通过输入一些文本按项目名称搜索,第一次AJAX搜索(输入a)生成的数据在填充产品名称搜索结果之前仍会出现一段时间。谢谢,这似乎是一个简单的解决方案。您能解释一下为什么/如何工作吗?@MHZ,当然可以,它工作的原因是浏览器现在发送了一个带有不同参数的新请求,因此他无法使用缓存。浏览器无法知道时间戳不是缓存在我的示例中,当用户将文本输入到输入字段时,我使用AJAX填充搜索建议。用户可以使用多个输入字段来生成搜索建议。一旦用户在输入字段A中生成搜索建议,然后单击输入字段B,输入字段A的结果仍然显示为r清除前几秒钟。清除缓存似乎不能解决此问题,但是,知道原因吗?@MHZ,抱歉,我需要更多的上下文。尝试想象两个输入字段,a和B。输入“a”允许用户使用AJAX搜索项目id(当他们键入时)。输入“B”允许用户使用AJAX搜索项目名称(键入时)。当用户试图通过在输入a中输入文本来搜索项目编号,然后单击输入B,通过输入一些文本来尝试按项目名称搜索时,第一次AJAX搜索(输入a)生成的数据在填充产品名称搜索结果之前仍会出现一段时间。