Javascript Isn';页面加载AJAX不是件坏事吗?

Javascript Isn';页面加载AJAX不是件坏事吗?,javascript,ajax,Javascript,Ajax,我在和其他网站上看到过这一点。在页面加载时(在JavaScript中,通过浏览器),AJAX请求将发出,以从呈现初始页面的同一服务器获取一些数据。数据将很小,并且没有技术限制,如果没有这些限制,他们将无法从一开始就获取这些数据 这不是件坏事吗?这看起来像是在浪费AJAX调用,因为他们可以在页面的其余部分以JavaScript的形式呈现这些数据 我的银行使用AJAX提取信息,为“转账”表单构建表单元素。这些信息只有几千字节,AJAX请求似乎有些过分 在nerd晚餐中,至少在我看到的例子中,他们正在

我在和其他网站上看到过这一点。在页面加载时(在JavaScript中,通过浏览器),AJAX请求将发出,以从呈现初始页面的同一服务器获取一些数据。数据将很小,并且没有技术限制,如果没有这些限制,他们将无法从一开始就获取这些数据

这不是件坏事吗?这看起来像是在浪费AJAX调用,因为他们可以在页面的其余部分以JavaScript的形式呈现这些数据

我的银行使用AJAX提取信息,为“转账”表单构建表单元素。这些信息只有几千字节,AJAX请求似乎有些过分

在nerd晚餐中,至少在我看到的例子中,他们正在(通过AJAX)查询一组晚餐,以便在页面加载时在地图控件上呈现

我可以理解,如果我们谈论的是大量数据,否则需要花费很长时间才能提取,但是如果数据小于10-15kb,那么使用标记提取数据不是更好吗?他们这样做是为了避免缓存数据吗


编辑:我的建议是,不要打开对服务器的AJAX调用,在客户端onload上拉下json数据,只要让asp.net(或其他任何东西)在页面内容中呈现json,然后再呈现其他内容。我只是觉得有必要指出这一点,因为除了json变量的来源之外,实际的客户端代码完全相同。

一般来说,根据我的经验,您希望尽可能避免页面上的任何Javascript。我的意思是,如果您可以在服务器端而不是Javascript上完成,那么您应该这样做。您的页面加载速度会更快,用户体验也会更好

这有时可能需要更多的工作,特别是如果在稍后的页面中使用相同的加载AJAX调用。您可能在服务器端重复代码。因此,在性能和您想要编写多少代码之间存在一个折衷


另一方面,Javascript有时被用于防御机器人、刮刀、恶意软件(如Keysniffer等)等,以确保您和站点的安全。例如,这可能意味着用Javascript加载页面元素,因为这样做会使黑客或抓取变得更加困难。对你来说不是不可能,只是更难。

我不知道请求/响应的大小在这里有什么关系。是否使用AJAX更多的是一个可用性问题,这里的一个因素是呈现初始页面的时间。用户不想等待。如果您只需要2秒钟就可以在服务器端计算一个页面元素,那么一定要考虑先发送没有该元素的页面,然后通过ajax获取该元素。即使页面元素只有几个字节。

我会编写初始页面服务器端,以包含第一个可能的AJAX调用,然后使用实际的AJAX处理之后的任何事情。您希望在您的终端上做更多的工作,以使最终用户更快地使用它


我看到过一个主要内容使用AJAX的网站。当侧面处于加载状态时,它将显示导航栏,然后在接下来的5秒钟内您将看不到任何内容,因为它加载了一个AJAX调用,您已经失去了在队列中的位置。这非常烦人。

我在加载时使用AJAX主要是为了避免重复工作并保持简单-如果无论如何都需要为更新执行客户端渲染,最好在初始渲染时使用相同的代码


由javascript生成的所有内容都会对搜索等产生影响,但只要您在设计页面时意识到这一点,就不会有太大问题。

页面加载时的AJAX调用是为了保持表示与内容/数据的分离

浏览器可以缓存演示文稿(HTML页面),AJAX调用只检索数据以更新UI


这可能会导致非常干净的分离以及一些性能优势。实际上,通过网络传输的信息更少,因为您没有传递HTML标记soup—只是传递数据所在的任何表示形式。

主要问题不是大小,而是额外的请求延迟/可用并行请求插槽阻塞

通常您是正确的,如果您最初是从服务器中提取页面,为什么还要再次访问以获取更多数据?但是,如果数据很大,那么最好加载页面,以便最终用户可以看到一些东西,然后提取数据

由于页面上经常使用类似的数据检索方法,因此数据可能会以Ajax方式提取。如果要进行一些Ajax加载,为什么要为初始加载编写单独的数据拉取机制呢

另外,永远记住演示就是这样,演示。书呆子晚餐的家伙们可能更感兴趣的是展示如何在MVC中使用AJAX,而不是其他优先级


不管怎样,接得好

这正是我能看到这一切的原因:

执行AJAX调用以加载初始数据可以作为验证Javascript是否已打开以及后续AJAX调用是否正常工作的一种方法。否则,客户端使用JavaScript对服务器进行的第一次调用将不起作用,用户可能会在没有意识到其安全设置是原因的情况下对该调用不起作用感到沮丧。

Back按钮
如果用户单击后退/前进,服务器将不会再次被调用,因为它会将内容从缓存中拉出。但是,在客户端页面加载上使用ajax调用时,服务器将始终被调用。

与页面加载上的ajax相比

  • 在服务器上使用额外的可用连接来处理AJAX请求
  • 在尝试完成呼叫时,可能会使页面处于空闲状态
  • 不可由搜索引擎索引
用于页面加载上的Ajax

  • 方便。将数据保留在页面之外
  • M