所以我下载了一个关于使用ajax进行实时搜索的源代码。
所以它有一个 custom.js
、search.html
和 search.php
文件。
所以我一直在尝试修改它以满足我的需求,但是当我尝试编辑或删除ajax脚本所在的custom.js
内的所有代码并保存它并刷新浏览器时,它仍然运行 ajax 脚本,因为我没有被编辑或删除。 iv'e 尝试关闭浏览器并再次尝试,它像他们一样继续运行,没有发生任何编辑。
有人知道为什么这种情况不断发生吗?我无法修改 custom.js,因为我不知道我的编辑是否有效。
这是 custom.js
中的代码
/* JS 文件 */
// Start Ready
$(document).ready(function() {
// Icon Click Focus
$('div.icon').click(function(){
$('input#search').focus();
});
// Live Search
// On Search Submit and Get Results
function search() {
var query_value = $('input#search').val();
$('b#search-string').text(query_value);
if(query_value !== ''){
$.ajax({
type: "POST",
url: "search.php",
data: { query: query_value },
cache: false,
success: function(html){
$("#result-here").html(html);
}
});
}return false;
}
$("input#search").live("keyup", function(e) {
// Set Timeout
clearTimeout($.data(this, 'timer'));
// Set Search String
var search_string = $(this).val();
// Do Search
if (search_string == '') {
$("ul#results").fadeOut();
$('h4#results-text').fadeOut();
}else{
$("ul#results").fadeIn();
$('h4#results-text').fadeIn();
$(this).data('timer', setTimeout(search, 100));
};
});
});
最佳答案
所以,因为这实际上是答案,我也会在这里发布我的评论版本:
实际上,这应该是一个缓存问题。所以
首先:您使用哪种浏览器?
然后:一种可能的解决方案是禁用浏览器缓存。您是否尝试过通过浏览器的开发人员工具(例如 chrome:f12/cmd+alt+i -> 网络选项卡 -> 禁用缓存)禁用缓存?
(因为上面是这里的答案,斜体文本只是为那些无法使其工作的人提供建议):
或者您是否尝试按 strg +f5
/cmd + shift + r
而不是仅尝试正常重新加载?
或者我是否正确理解您的意思,您正在尝试直接在浏览器开发工具中更改 js?
所以,它可能有一点可能与您的代码有关,但要知道会发生什么,我们必须在编辑后查看“旧”代码和"new"代码。
...除此之外,Sagar Arora 在他/她的回答中建议的是一种称为缓存安全 token 的东西,这肯定也会帮助您解决问题,因为对于每个请求,您不仅会加载'custom.js',然后会被缓存,但是 'custom.js?v=x',其中 x 是缓存安全 token (不过应该长于 1 到 10;) )
关于javascript - Ajax:为什么当我删除它的脚本时ajax仍继续运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42185085/