我只是Django相关内容的首发,所以我为我的混乱解释提前道歉。我一直在尝试使用附加的电子商务模块解决基于Django的网站上的一些页面加载问题。
初始页面加载时间很长,大约5秒,之后一切都顺利进行/加载。
这些巨大的加载时间发生在与产品相关的所有页面上(在我的例子中是单个产品页面和购物车)。奇怪的是,列表很好(类别页面)。
我的下一个猜测是,加载时间是由一些与产品相关的查询引起的,所以我进一步搜索了代码,并且我来到了包含“product_view”定义的main.py文件中。
代码如下:
def product_view(request,shortcode,product_id,variation_id,stub):
product = get_object_or_404(Product.unmoderated.select_related(),pk=product_id)
variation = get_object_or_404(ProductVariation.objects.select_related(),pk=variation_id)
print variation.__dict__
if not product.active:
c = {}
return render_to_response('main/product_inactive.html', c, context_instance=RequestContext(request))
links = ['main_product_view','main_product_variation'+str(variation.id)]
c = {'links':links, 'product':product, 'variation':variation, 'categories':get_categories(), 'brands':get_brands(), 'title':product.name}
c.update(csrf(request))
return render_to_response('main/product.html', c,
context_instance=RequestContext(request))
def product_view_json(request,shortcode,product_id,variation_id,stub):
try:
product = get_object_or_404(Product,pk=product_id)
variation = get_object_or_404(ProductVariation,pk=variation_id)
thumbnail = get_thumbnail(variation.image, '220x220', crop='center', quality=80)
d = {"title":product.name, "brand":product.merchant.name, "price":str(product.base_price+variation.price), "image":thumbnail.url}
out = json.dumps(d)
r = HttpResponse(out)
r['Access-Control-Allow-Origin'] = '*';
return r
except:
return HttpResponse("Error")
此时我迷失了,不知道我是否正在解决这个问题,或者我还应该做些什么。
此外,还有一些丢失的图像,仍然没有将其打破,但此时并不完全相关。此外,启用了memcache,静态模板文件不会影响所有页面加载时间(仅将模板剥离为文本),并为Apache环境启用mod_pagespeed模块。
我真的很感激有关此的任何意见。谢谢!
答案 0 :(得分:0)
我认为product_view
中的这些行不正确
product = get_object_or_404(Product.unmoderated.select_related(),pk=product_id)
variation = get_object_or_404(ProductVariation.objects.select_related(),pk=variation_id)
将其更改为
product = get_object_or_404(Product,pk=product_id)
variation = get_object_or_404(ProductVariation,pk=variation_id)
.select_related()
将尝试预取并加载所有对象及其相关对象,这将耗费资源。
答案 1 :(得分:0)
似乎更像是一个HTML问题,而不是django问题。看看几件事
如果您使用弹出窗口,则加载时间会增加,因为它们是 在页面加载时加载。
然后查看您是远程调用.js和.css文件还是它们 放在你的服务器上。因此,如果他们是本地的,它会提升 响应。
请看一下这些,如果有任何存在的话,请告诉我