假设您有一个名为“查看故事”的视图,该视图只是通过
Python / Django在后台呈现的网页.在该页面上,使用Django的模板系统(在循环中),将底部的注释列表显示为“查看故事”模板的一部分.此页面还允许您向列表添加注释.这是通过AJAX完成的,并且该页面被更新为新的注释(不发送新的全页请求).
现在,当将新的注释添加到列表的末尾时,我希望为此新注释生成的HTML(< li>)内的内容使用与用于生成发送给客户端的原始注释完全相同的代码通过原始请求.
有多种方法可以做到这一点:
>将初始渲染引发注释数据转换为JavaScript变量,一旦页面呈现,就可以通过javascript添加内容.然后当添加新的注释时,可以使用相同的JavaScript来渲染新的.问题:从搜索引擎的角度来看,我不确定如果在页面呈现后生成的话,google可以对这些注释进行索引 – 我猜不
>每次通过AJAX添加新的注释时,请求ajax请求将实际的HTML返回到页面上,而不仅仅是新注释的JSON数据.可以使用用于呈现原始页面的相同模板代码片段生成HTML.这样做的问题是,它将AJAX请求与特定视图相关联,或将其与不喜欢的方式进行呈现.
>类似于#2,除了单独的请求来检索新的注释的HTML或者所有的注释,列表只是擦除和重新呈现.不喜欢这样做的原因是它的效率低下,不必要的耗时.
因此,总而言之,我想要避免为单个视图重复模板/ HTML代码.而且,我想提出一些关于别人工作的建议,因为我很确定这是一个常见的情况,无论后端的技术如何.
谢谢!