所以我已经使用ajax下载了关于实时搜索的源代码。
所以它的文件为custom.js
,search.html
和search.php
。
所以我一直在尝试修改它以满足我的需求,但是当我尝试编辑或删除custom.js
里面的所有代码,其中ajax脚本并保存并刷新浏览器时,它仍然运行我没有编辑或删除ajax脚本。 iv尝试关闭浏览器并再次尝试,它一直在运行,就像他们没有编辑一样。
为什么会这样的事情继续发生?我无法修改custom.js因为我不知道我的编辑是否有效。
这里是custom.js
/ * JS File * /
// 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));
};
});
});
答案 0 :(得分:1)
这是缓存问题。 打开检查员并检查"禁用缓存"
Screenshot 此选项仅在打开检查器时有效,因此在调试时保持打开
答案 1 :(得分:1)
问题是浏览器每次都检测到调用相同的custom.js文件。
在你调用custom.js文件的search.php文件中,只需将每个页面加载时更改你的custom.js加载一些动态版本。
喜欢这个
From: <script src="custom.js"></script>
To : <script src="custom.js?v="<?php echo rand(0,9); ?>></script>
这肯定会解决您的问题。
答案 2 :(得分:1)
所以,因为它实际上是答案,我也会在这里发布我的评论版本:
实际上,这应该是一个缓存问题。所以首先:你使用哪种浏览器?
然后:一种可能的解决方案是禁用浏览器缓存。您是否尝试通过浏览器的开发人员工具(例如chrome:f12 / cmd + alt + i - &gt; network-tab - &gt;禁用缓存)禁用缓存?
(如上面的答案,斜体 - 文本只是留给不能让它工作的人的建议):
或者您是否尝试按strg +f5
/ cmd + shift + r
而不是仅尝试正常重新加载?
或者我是否理解正确,您是否正在尝试直接在浏览器devtools中更改js?
所以,有可能它与你的代码有关,但要知道发生了什么,我们必须在编辑后看到“旧”代码和“新”代码。
...除此之外,Sagar Arora在他/她的答案中建议的是一种称为缓存安全令牌的东西,这肯定会让你解决问题,因为对于每个请求,你不仅会加载'custom.js',然后被缓存,但是'custom.js?v = x',其中x是缓存安全令牌(应该长于1到10,但是;)