- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我确信这是当今许多网络应用程序的常见问题。重用 html 模板的最佳方式是什么,这样您就不会在最初呈现页面时和在该页面中添加新内容时加倍?
我可以正常呈现 HTML 页面,但不专门填充任何数据。然后,页面的每个部分将负责使用 Javascript 呈现自身。这种方法的好处是 javascript 用于呈现所有可更新的内容。这里还有一个非常好的关注点分离,页面上的每个部分都做自己的事情。
缺点是我在每个页面加载时向服务器发出多个请求。
我可以发送服务器生成的 HTML 片段,然后将它们添加到页面的任何部分。这使得页面的初始加载速度非常快。它还重用了相同的服务器端模板代码,因此也没有重复。
缺点是我无法进一步检查它。另一个缺点是前置/附加非常有限。如果我想保持它的排序方式怎么办?如果它是按字母顺序排列的,则用户无论如何都必须刷新屏幕才能获得正确的排序顺序。如果结果是分页的,这样做就更麻烦了。
我可以发送一个 JSON 数据结构,就像在 1 中一样 - 但是,我还可以添加完全生成的 html 模板。这将使我能够先检查对象,然后再决定如何将其添加/附加到页面。
这里唯一真正的缺点是我必须在我的 Controller 中手动调用 Freemarker(我使用的是 Spring 3.0.x MVC)。这通常是自动为我完成的。我确信有办法做到这一点,但我必须花一些时间研究如何做。
实际上,这给了我 1 和 2 的所有好处,但它也是最复杂的解决方案。传输的数据量也高于其他两种解决方案……但这也许无济于事。
哪种方式被认为是最好的?还有其他方法吗?我正在构建的应用程序非常复杂,并且将使用大量的 ajax。等效的纯 HTML 版本是不可能的。事实上,我什至不打算构建应用程序以便非 Javascript 用户可以使用它。那好吧。所以在回答时请记住这一点;)
谢谢
最佳答案
我会使用 moustache.js用于填充从 JS 收集的值的模板部分。
此外,如果您不想在初始加载时使用 ajax,则可以在初始 html 的脚本标签中以 json 格式编写初始页面的 json。
最后,如果您正在做一个非常复杂的 ajax 应用程序,我建议您使用 backbone.js ,一开始有点难以理解,但它真的很强大!这是一个complete example与 commented code .
关于javascript - 大量使用 ajax 问题 - 如何在页面上最初和之后在修改时呈现 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5801762/
我有一个使用 Sinch SDK 和 CallKit 实现的 VOIP 应用程序。一切正常,除了设备插入耳机时。在后一种情况下,当通话开始时,音频仍通过设备的主扬声器路由。如果我在通话期间拔下并重
我需要将大量复杂(20 多个属性)对象过滤成多个子列表。要创建子列表,我有一个过滤器规范列表。要求是:a) 不允许一个项目成为两个子列表的一部分,并且 b) 必须能够在处理完成后获取所有未分割的项目。
我有一个简单的 .share-toggle 切换链接。当您点击它时,Facebook 评论插件应该会显示。它最初应该被 Conceal 问题是,如果我使用 css Conceal 它,然后单击切换按钮
我正在尝试制作一个功能类似于 android 市场的图库,您可以在其中滚动(左/右)以查看免费或付费应用程序等...还可以在布局中上下滚动。 到目前为止,我只是让它加载了两个布局,它们都有一个简单的“
大家好,我是网络开发的新手,最近刚刚完成我对网络设计的第一次尝试。我偶然发现了一个我找不到解决方案的问题。在 webkit-browsers 中,我的一个 ul-lists(导航)最初呈现在错误的位置
我遇到了这个问题。我在 ISP 上使用 Umbraco CMS 启动了一个 ASP.NET 网站。(这只是一个非常基本的信息网站。没什么特别的。) 但是,当我想要访问该网站时,第一个页面加载需要很长时
在我的 iPhone 应用程序中,我使用 UITabBarController 布置了三个选项卡。第一个选项卡(在应用启动时加载)使用本地数据加载,速度非常快。 虽然第二个选项卡从网络下载 XML 文
我有这样的风格: #cytoscape-container { width: 100%; height: 100%; margin: 0 aut
我在这里看到了几篇关于 SO 的帖子,但它们在功能和结构上过于具体,而我正在寻找的是我或任何人都可以在任何地方使用的更通用的东西。 我只需要有一个按钮,单击该按钮可以在 3 类之间循环。但如果出现必须
我在 http://www.raven.dima.neoturbine.net/ 有一个网页我正在努力。顶部导航在 IE 8、Firefox 3.6 和适用于 Android 的 Dolphin 浏览
我想将主机的用户/组与 docker 机器同步,以使(开发人员)能够编辑容器内部或外部的文件。有一些这样的想法:Handling Permissions with Docker Volumes这会创建
向通知列表/栏发布推送通知时,.contentText 和 .number 最初不显示(.ticker、.icon 和 .contentTitle 显示正常)。但是,在发布另一个通知(具有不同的 ID
我实现了以下 MKMapView 方法,该方法在添加注释后运行。我在 Interface Builder 中将我的 MKMapView map (parishMap) 设置为“显示用户位置”,并且在加
我是一名优秀的程序员,十分优秀!