我正在使用codeigniter构建我的网站。当用户滚动时,我在一个页面上进行多个ajax调用。我的网站也使用codeigniter进行缓存。我似乎缓存阻止了ajax调用。
它是这样的:
我刷新我的网站并在用户滚动后进行第一次ajax调用。之后应该有几个ajax调用,但它们不执行(不知道为什么)。然后我删除我的缓存,回到网站并滚动。再次只执行第一个ajax调用。
所以我最好的猜测是缓存会以某种方式阻止调用,但我不知道如何绕过这个问题。
我对ajax和codeigniter比较陌生。我用谷歌搜索,但没有任何有用的东西出现。我希望你们能帮助我:)。
答案 0 :(得分:0)
假设您正在拨打ajax电话:
www.yoursite.com/some_class_to_cache/some_function/some_parameter
问题是路由器负责缓存页面
www.yoursite.com/some_class_to_cache/some_function/cached_parameter
因此,您收到的响应是此缓存页面而不是ajax响应。 要改变这种行为,一种解决方案是创建一个位于其他未缓存的地方的ajax调用处理程序。
www.yoursite.com/some_ajax_class/some_function/some_parameter
从那里创建 some_class_to_cache 对象,并使用 some_parameter 调用 some_function 。
答案 1 :(得分:0)
jquery
有解决方案但codeigniter
会返回404页
$.ajaxSetup({ cache: false });
从我可以看到的问题是jquery使用他们称之为缓存破坏者的东西
_?=xxx
获取值,如果我找到了一个可以使用
应该更容易解决问题
www.yoursite.com/some_class_to_cache/some_function/some_p
arameter?_=1469969058680
这就是为我解决的问题
将config.php更改为此
$config['uri_protocol'] = "PATH_INFO";