django memcached和ajax请求
我已经为django应用程序设置了memcached(unix套接字)。然而,当memcached处于打开状态时,一些ajax请求似乎无法正常工作。我在整个网站上使用memcached 例如,在这个javascript函数中,django memcached和ajax请求,ajax,django,memcached,Ajax,Django,Memcached,我已经为django应用程序设置了memcached(unix套接字)。然而,当memcached处于打开状态时,一些ajax请求似乎无法正常工作。我在整个网站上使用memcached 例如,在这个javascript函数中,.load()指令第一次起作用,但之后它会继续从缓存中“获取”相同的页面 function placeBet(user, bet) { var ajax_data = { status:false, message: '' }
.load()
指令第一次起作用,但之后它会继续从缓存中“获取”相同的页面
function placeBet(user, bet) {
var ajax_data = {
status:false,
message: ''
}
$.ajax({
url:'/place_bet/' + user + '/?ajax=&bet=' + bet,
type:"POST",
dataType:"json",
data:ajax_data,
success:function (data){
var message = "";
$('#user_open_bets').load('/ob/' + user + '/?ajax=');
if (data.status == false){
alert(data.message);
}
} // success
}); // ajax
}
如何强制这些ajax请求从数据库重新加载,而不是从缓存重新加载
编辑
这是我的settings.py
中间件类
MIDDLEWARE_CLASSES = (
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'main.common.tz_middleware.TimezoneMiddleware',
'main.common.sslMiddleware.SSLRedirect',
'django.middleware.cache.FetchFromCacheMiddleware',
这是默认的浏览器行为(缓存ajax请求)。要避免将成瘾参数传递到您的请求,请执行以下操作:
url:'/place_bet/' + user + '/?ajax=&bet=' + bet+'&t='+new Date().getTime()
编辑:
要加载的正确url为:
'/ob/' + user + '/?ajax=&t=' + new Date().getTime()
你试过添加参数吗
cache: false,
你的ajax请求?例如:
$.ajax({
url:'/place_bet/' + user + '/?ajax=&bet=' + bet,
type:"POST",
dataType:"json",
data:ajax_data,
cache: false,
success:function (data){
var message = "";
$('#user_open_bets').load('/ob/' + user + '/?ajax=');
if (data.status == false){
alert(data.message);
}
} // success
});
答案似乎比我想象的要简单。我在django文档中找到了解决方案 我复制粘贴(供其他人知道)
话虽如此,@Alex的建议似乎很有趣,我想试试。但是,由于迁移原因,现在我的服务器已关闭。我需要等几个小时。我稍后会在这里报告 我也在使用memcached。我找不到任何特定于ajax请求的问题。它特定于某些浏览器吗?不。每个浏览器都会出现这种情况。甚至在不同的电脑里。我粘贴了我的
settings.py
MIDDLEWARE
classes不,这是一篇文章。浏览器不会缓存帖子。我相信这是正确的想法,但这是错误的<代码>$('#user_open_bets')。加载('/ob/'+user+'/?ajax=')代码>执行可能正在缓存的GET。
from django.views.decorators.cache import never_cache
@never_cache
def myview(request):
# ...