2010-06-29 48 views
1

在我的基本模板(main.html)的標題區域,我放置了一個HTML5媒體播放器,它可以通過我的管理界面上傳內容。是否有可能使用django的模板繼承阻止基礎模板重新加載?

我試圖做的是,當軌道已經加載一次,讓媒體播放器保持不受內部網站導航影響。換句話說,媒體播放器不斷播放,但用戶可以在不中斷播放/重新加載曲目的情況下瀏覽網站。

這是一個相當簡單的設置。有一個主模板,其他各部分(比如,博客,聯繫方式等有關)的是同一個模板中加載的所有內容塊使用:

{% extends 'main.html' %} 

據我瞭解,當模板系統評估一個子模板,首先加載父項,然後按照定義填充子塊。我在邏輯上或許錯誤地認爲小孩地區會被「拉進」父母。但是,閱讀了關於模板繼承的django文檔後,看起來實際發生的是某種反向查找:查找父>加載父>查找塊>填充塊。正如我現在設置的那樣,每次點擊鏈接時,媒體停止播放並重新加載。

所以我的問題是,我是否已經錯過了django的模板引擎工作的基本方式,它可能實現我剛剛使用模板引擎之後的工作,或者它是不可能的,而且我需要做一些其他的方式(例如通過AJAX)。這是我第一次嘗試在django做這樣的事情,所以如果它是前者,我不會感到驚訝。

回答

2

我試圖做的是,當音軌已經加載一次,媒體播放器保持不受內部網站導航影響。換句話說,媒體播放器不斷播放,但用戶可以在不中斷播放/重新加載曲目的情況下瀏覽網站。

這不是特定於Django模板的內容,而是您的HTML頁面的結構。媒體播放器在Django中沒有被替換,而是在瀏覽器中通過重新加載頁面來替換。

事情可以做:

  • 擁有一切通過Ajax運行。
  • 讓所有其他頁面都運行在
  • 讓所有其他頁面都運行在<frameset>標記中。

Eiter的方式,當用戶瀏覽網站時,地址欄中的網址不會再改變。要求使用Ajax也會影響Google可以爲您的網站編制索引。

一本很好的HTML書籍將幫助您開始設置基於frameset/iframe的頁面。

+0

謝謝vdboor。這真的很有幫助。 – hellojelly 2010-06-29 13:30:06