页面加载Pure HTML AJAX网站中的替代方案

Ali*_*sam 10 html javascript asp.net ajax jquery

我正在开发一个纯HTML网站,所有页面都是HTML,与任何服务器端代码无关.

基本上每个服务器的请求都是使用AJAX,我从表单发送数据,我在处理程序中处理这些数据,然后我返回一个JSON字符串,将在客户端处理回来.

假设该页面在URL中加载了参数,例如question.html?id=1.早些时候,我曾经在Page Load方法上读取这个查询字符串,然后从数据库中读取数据等等......

现在,由于它的纯HTML页面,我试图想出一种方法,这将允许我做同样的,我有一个想法,但它的99%是一个坏主意.

我们的想法是使用JS读取URL参数(在页面加载后),然后发出AJAX请求,然后获取数据并在页面上显示它们.我知道,我们现在有2个请求,第一个请求获取页面,第二个请求是AJAX请求,而不是向服务器(Web窗体)发出1个请求.当然,这有很多延迟,因为页面将在开头加载而没有我需要的实际数据.

我的目标不可能或者那里有成熟的方法吗?

JLR*_*she 6

我的目标不可能或者那里有成熟的方法吗?

最近有一小部分围绕这个概念("单页面应用程序")设计的JavaScript框架,它有一个页面加载而没有预加载任何数据,并通过AJAX访问所有数据.这种框架的一些例子是AngularJS,Backbone.js,Ember.js和Knockout.所以不,这根本不可能.我建议学习这些框架和其他框架,以找到适合您正在制作的网站的框架.

我们的想法是使用JS读取URL参数(在页面加载后),然后发出AJAX请求,然后获取数据并在页面上显示它们.

这听起来像个好主意.
以下是如何使用JavaScript从当前页面的URL中提取查询参数的示例.

我知道,我们现在有2个请求,第一个请求获取页面,第二个请求是AJAX请求,而不是向服务器(Web窗体)发出1个请求.当然,这有很多延迟,因为页面将在开头加载而没有我需要的实际数据.

这就是为什么你不应该担心这个:

  • 用户的浏览器通常会缓存HTML文件和相关的JavaScript文件,因此当他们第二次访问您的站点时,浏览器将发送请求以检查文件是否已被修改.如果没有,服务器将发回一条短消息,只是说它们没有被修改,并且不需要再次传输文件.
  • AJAX响应将仅包含页面所需的数据而不包含标记.因此,检索在服务器上生成的页面将涉及比组合可缓存的.html文件和AJAX请求的方法更多的数据传输.
  • 因此,即使您发出两个请求而不是一个请求,总加载时间也应该更少.如果您担心用户在加载AJAX数据时会看到没有内容的页面,您可以(a)在加载数据时让页面完全空白(只要它不是太慢,这不应该是问题),或(b)抛出启动画面告诉用户页面正在加载.同样,如果页面在此之后很快,用户通常不会在开始时遇到少量加载时间的问题.