【问题标题】:Changes in Javascript have no effectJavascript 中的更改无效
【发布时间】:2013-05-11 18:17:56
【问题描述】:

--更新-- 原来我的浏览器正在缓存我的脚本。我不敢相信我在 15 分钟的谷歌搜索中找不到这一点..

我发现了一些我认为非常奇怪的东西。事实证明,我在脚本中写了什么甚至都没有关系!我正在使用 CodeIgniter

这是我的看法:

<script src="<?php echo base_url('/assets/js/ajax.js');?>"></script> 
<span id="dislike_error" style="color:red;"></span>

ajax.js 目前为空,但这是之前的代码:

$('#btn_dislike').click(function (){

    $.post("interact/"+challenge_id, {'action':'dislike'}, function(data){
        if (data == true){
            var old_likes_number=parseInt($('#dislike_number').text());
            var new_likes = old_likes_number+1;
            $('#dislike_number').text(""+new_likes);
        }
        else{
            $('#dislike_error').text('WTFF');
            //$('#dislike_error').html("You have already disliked this challenge.").


        }

    }).fail(function(){alert('Fail');});
}); 

这是为什么?我尝试关闭浏览器中的选项卡。我尝试重新启动浏览器。但不知何故,浏览器会记住之前的 Javascript?!

【问题讨论】:

  • 听起来像浏览器缓存了文件,并没有费心与服务器检查它是否被修改。只需按 Ctrl+F5 即可解决。
  • GET 请求被缓存。缓存 101。这就是让网络更快的原因。
  • 按ctrl+shift+delete删除缓存
  • 按 ctrl + f5 .. :):)
  • Chrome 似乎有问题。我有时必须按几次 CTRL+F5 才能真正重新加载我的脚本。

标签: javascript jquery


【解决方案1】:

您的浏览器正在缓存您的脚本。在开发时自动重新加载缓存的东西。

【讨论】:

    【解决方案2】:

    清除浏览器中的缓存

    或者..最好的方法是添加这个

    # don't cache css or js, for debugging, only
    <filesMatch "\.(css|js)$">
      ExpiresActive On
      ExpiresDefault "access"
      Header append Cache-Control "public"
    </filesMatch>
    

    到您的 .htaccess 文件,强制浏览器每次更新 css 和 js 文件,不过,您只希望在开发机器上这样做。

    【讨论】:

    • 你最好告诉你的浏览器不要缓存它,没有意外把它留在那里的风险
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 2018-08-21
    • 2020-11-11
    相关资源
    最近更新 更多