我只是在一切的Django首發相關的,所以我敬請原諒我困惑的解釋。我一直試圖通過附加的電子商務模塊解決基於Django的網站上的一些頁面加載問題。Django的電子商務網站龐大的產品頁面初始加載時間(等待)
初始頁面加載時間是巨大的,約5秒,點之後,一切都/負載順利。
- 這裏是螢火蟲一個screengrab:http://i.imgur.com/WEuYwq1.jpg
- 鏈接到開發環境:http://bit.ly/13G7jNp(產品頁面)
這個龐大的加載時間上都涉及到產品的所有頁面中發生(在我的情況下,單一產品頁面和購物車)。奇怪的是,列表沒有問題(分類頁面)。
我的下一個猜測是,加載時間是由一些產品相關的查詢造成的,所以我進一步搜索的代碼,我已經來到翻過其中包含了「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模塊。
我真的很感激有這方面的投入。謝謝!
嘗試[Django的調試工具欄(https://github.com/django-debug-toolbar/django的-debug-toolbar)它會告訴你已經執行了多少個查詢以及每個查詢花了多少時間。然後你可以從那裏改進。 –