2010-06-29 75 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