Javascript ajax的大量使用问题-如何在页面被修改时最初和之后呈现html?
我相信这是当今许多web应用程序的常见问题。重用html模板的最佳方法是什么,以便在最初呈现页面时以及在向该页面添加新内容时不会出现重叠Javascript ajax的大量使用问题-如何在页面被修改时最初和之后呈现html?,javascript,html,ajax,templates,render,Javascript,Html,Ajax,Templates,Render,我相信这是当今许多web应用程序的常见问题。重用html模板的最佳方法是什么,以便在最初呈现页面时以及在向该页面添加新内容时不会出现重叠 我可以像正常情况一样呈现HTML页面,但不能专门填充任何数据。然后,页面的每个部分将负责使用Javascript呈现自己。这种方法的优点是使用javascript呈现所有可更新的内容。这里还有一个很好的关注点分离,页面上的每个部分都有自己的功能 缺点是,当服务器加载时,我会在每页向服务器发出多个请求 我可以发送服务器生成的HTML片段,只需在页面的任何部分添加
谢谢一个合理的方法是让模板由许多组件组成。第一次呈现页面时,将呈现整个模板,并返回整个页面的html。更新页面特定部分的后续Ajax请求只调用特定组件的呈现,并返回仅此组件的html 轮廓组件
HEADER COMPONENT
COMPONENT X
COMPONENT Y
...
FOOTER COMPONENT
在页面请求时,将呈现大纲组件及其所有子组件。然后假设组件X的html需要更新:因此ajax请求类似于:
GET /MyPage.componentX
它将返回该组件的html
不过,我绝对建议使用一个像样的web应用程序框架。大多数都是基于组件的,内置了必要的客户端javascript。1>
看,我见过很多人和网站获取大量内容,这些内容最终被转储到div的innerHTML中。我觉得,这只是一种浪费。我所做的是尽可能地提出最小、最快的请求,并希望得到同样的响应。如果您说在完成新的搜索查询后更新名称,我更希望从响应中提取数据,而不是将响应放在表或div表单中!像这样:-
“用户1;501;BSoD |用户2;507;BSoD”
因此,我将使用Javascript在客户端呈现表,而不是获取表代码。我将首先用“|”分割响应,然后用“;”分割每个块。这使得运行AJAX命令更容易、更快
您还可以选择根据搜索结果存储这些响应(此处使用的示例),以减少流量使用并获得更好的GUI
2>
不要使用库,但也不要对页面上的内容使用脚本标记
许多人使用的库大小高达100-450KB,这对于AJAX来说毫无意义。它只会让你的网站变慢,最终也会让HTML页面变慢。您必须使用带有src属性的脚本标记从您的网站添加脚本文件,但请确保脚本标记以
开头和结尾,以提高网页性能
3>
验证发送的自制标头,以防止任何非AJAX请求导致显示响应 我将使用从JS收集的值填充模板部件
另外,如果不想在初始加载时使用ajax,可以在初始html的脚本标记中以json格式编写初始页面的json
最后,如果您正在开发一个非常复杂的ajax应用程序,我建议您使用它,一开始理解它有点困难,但它非常强大!这里有一个例子。你的基本解决方案与我在帖子第1点中所说的相同。它的问题是对服务器进行了许多调用。我不知道这是否是一个大问题,因此我问;)但是在java世界里。。。使用Spring。。。这里并没有“使用web框架”这样的帮助。这是一个非常好的MVC框架,它确实支持发送JSON,而无需自己封送数据——但除此之外,它还相当弱。映射传入的JSON实际上是一件很麻烦的事,如果它很复杂并且与实体相关的话。除此之外,它没有提供任何东西。嗯。。。这和我的问题有什么关系?我会调查的。重新发明轮子是没有意义的。我也不想陷入框架无法1的情况