Javascript 策略问题:RESTful应用程序中的平面/静态页面

Javascript 策略问题:RESTful应用程序中的平面/静态页面,javascript,django,web-applications,Javascript,Django,Web Applications,我使用Backbone.js通过tastypie连接到Django后端。我已经为我的动态内容解决了一些问题,但我想知道如何处理我的FAQ/about/Contact页面。因为我希望有一个不间断的用户体验,不必等待页面在链接之间加载,我想知道从哪里加载这些平面页面的数据 我不想在这里进行总体设计,因为这些是带有非动态内容的小册子页面。简而言之,布局很重要,他们不需要CMS 那么,我的main index.html中是否已经有了这些页面,并在需要时显示它们?我觉得这很肮脏 我是否让Django将这些

我使用Backbone.js通过tastypie连接到Django后端。我已经为我的动态内容解决了一些问题,但我想知道如何处理我的FAQ/about/Contact页面。因为我希望有一个不间断的用户体验,不必等待页面在链接之间加载,我想知道从哪里加载这些平面页面的数据

我不想在这里进行总体设计,因为这些是带有非动态内容的小册子页面。简而言之,布局很重要,他们不需要CMS

那么,我的main index.html中是否已经有了这些页面,并在需要时显示它们?我觉得这很肮脏

我是否让Django将这些页面的html存储在设置为接受html的文本区域中,并在需要时通过tastypie将html作为JSON输出?啊,这听起来也很肮脏

或者django只吐出相关数据来填充已经在index.html中定义的html——这听起来是正确的,但工作太多了,我不想为我说过的不需要CMS的页面定义db模型


我希望我对所有这些方法的理解都有偏差,而您有更好的方法来解决我的难题。

您的第一个想法是将它们包含在main index.html中,并根据需要显示它们,这似乎很合理,但有几个缺点:

  • 您的索引页较重,因此加载速度比需要的慢
  • 手册页面在代码库中没有逻辑上分开
您可以通过在index.HTML加载后动态加载HTML来修复这两个问题。当用户单击页面时,您仍然会使用相同的客户端代码来显示页面,就像它嵌入在主HTML文件中一样,但不是将HTML包含在初始index.HTML文件中

<div id="faq-page">
   <h1>FAQ</h1>
   ...
</div>

常见问题
...
在主页呈现后,使用空白div和事件通过AJAX加载它们。我不确定您是否正在使用jquery,但如果是这样,代码将如下所示

<div id="faq-page"></div>
<script>
    $(function() {
        $("#faq-page").hide() // ensure it doesn't display too early
                      .load("/include/faq.html");  // async load the content from server
    });
</script>

$(函数(){
$(“#常见问题解答页”).hide()//确保它不会显示得太早
.load(“/include/faq.html”);//异步从服务器加载内容
});
现在,当用户点击应用程序中的FAQ链接时,页面将尽快显示。如果页面有时间加载(正常),它将立即显示。如果他们碰巧在加载链接之前点击了该链接,那么服务器一响应该链接就会显示出来

您可以在服务器端以自己喜欢的方式设置
/include/faq.html