Django Memcached和Ajax请求 [英] django memcached and ajax requests
问题描述
我已经为我的Django应用程序设置了memcached(unix套接字).但是,似乎在打开memcached时某些ajax请求无法正常工作.我在整个网站上都使用了memcached.
I have setup memcached (unix socket) for my django application. However it seems that some ajax requests do not work, as expected, while memcached is on. I am using memcached on my entire site.
例如,在此javascript函数中, .load()
指令首次运行,但此后它会从缓存中获取"相同的页面.
For example in this javascript function the .load()
directive works the first time, but after that it keeps 'fetching' the same page from cache.
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请求从数据库而不是从缓存重新加载?
How can I force those ajax request to reload from database instead from cache?
编辑.
这是我的 settings.py
MIDDLEWARE类
This is my settings.py
MIDDLEWARE classes
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',
推荐答案
似乎答案比我想象的要简单.我在Django文档中找到了解决方案.
It seems that the answer was simpler than I thought. I found the solution in the django docs.
https://docs.djangoproject.com/en/dev/topics/cache/#controlling-cache-using-other-headers
我复制粘贴(供其他人知道)
I copy paste (for other people to know)
from django.views.decorators.cache import never_cache
@never_cache
def myview(request):
# ...
话虽如此,@ Alex的建议似乎很有趣,我想尝试一下.但是,由于迁移原因,现在我的服务器已关闭.我要等几个小时.稍后我将在这里报告.
Having said that, @Alex's suggestion seems interesting and I would like to try it. However now my server is down for migration reasons. I need to wait for some hours. I will report here, later.
这篇关于Django Memcached和Ajax请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!