2012-01-16 80 views
0

我不知道Django native是否支持DOM中的變化。我不知道它現在是否是正確的名稱,所以我想我會解釋它。例如,如果我用django製作電子商店網站。我希望當我點擊一個產品時,它應該添加到籃子裏,這在html中可能看起來像這樣。所以對於每個產品,我都添加了一個新的動態<li></li>。我可以用django來做到嗎?或者我必須使用Javascript嗎?Django:它支持DOM中的更改嗎?

<div id="basket"> 
    <ul> 
    <li> 
    // some product 
    </li> 
    </ul> 
</div> 

回答

1

這取決於。

1)你可能想要讓你的應用程序非常有活力,所以你的購物籃中的另一個元素會在沒有頁面重新加載的情況下出現。這將通過將ajax請求(您的服務器需要知道您在購物籃中的內容)與DOM操作(純粹是JavaScript)結合來完成;

2)你可以使用更經典的方法。將元素添加到籃子只是一個POST請求。 Django處理請求(存儲在會話或其他地方的當前籃子中)併爲您生成新的HTML。

Imho,第一種方法更快,對最終用戶來說看起來更好。缺點是您可能會丟失一些有價值的信息,當用戶重新加載整個頁面時會自動更新(例如項目的價格)。但是,如果我們談論商店,這應該不成問題。畢竟產品數據多久變化一次?

0

Django本身不會爲您生成JavaScript。通常的方法是將JavaScript導入到模板中的頁面中。