2010-12-03 26 views
1

我有一個複雜的頁面,頁面的某些部分需要更多時間才能加載。我正在考慮在加載初始頁面後使用AJAH方法並使用jQuery加載片段。然後我意識到這應該是相當普遍的問題。那麼像{%includeajax「sometemplate.html」%}這樣的東西呢?Django - 使用Ajax/Ajah加載頁面片段

這是什麼意思是使用AJAH/AJAX加載「sometemplate.html」。這不是很酷的標籤嗎?有任何想法嗎?

我知道如何實現這一點,這將是很好的有這樣的可重用標籤。你知道一些其他簡單的方法來實現嗎?

感謝

回答

1

我做了一箇中間件及模板標籤做到這一點:

{% delayed_block big_table %} 
    Real content. It will be loaded by Javascript at document.ready event. 
{% delayed_stub %} 
    Stub content that is rendered immediately. 
{% enddelayed_block %} 

當加載頁面時,一段JavaScript注意到一個特殊的類,並從服務器請求它,使得與?partial=big_table參數的請求。當big_table參數爲partial時,此塊將呈現真實內容。中間件捕獲輸出,只提取這個塊並用JSON包裝它。然後,Javascript模塊將它放到正確的位置。該項目名爲django-partial-page。它的django部分是一個雞蛋,而Javascript模塊在example/media/js/partial.js

0

我會讓它指向一個視圖,而不是一個模板,在url風格。模板標籤可能會生成一個假的HttpRequest,它可以發送到視圖,然後在模板中包含響應的內容。

+0

指出它的意見更有意義,我同意。爲什麼假HttpRequest?我更喜歡標籤會生成JavaScript代碼,可以獲取幷包含視圖的內容(片段)。也許我們的意思是相同只是不瞭解對方。 – Tomas 2010-12-03 17:38:38

+0

生成JavaScript是可行的(如果不一定是直截了當的),但這意味着您必須執行*另一個*往返服務器才能顯示它。既然你已經*在服務器上了,那麼你現在就可以得到它了。 – 2010-12-03 22:40:18

相關問題