Javascript 在页面加载时为JS提供初始数据集的最佳实践

Javascript 在页面加载时为JS提供初始数据集的最佳实践,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,想象一个显示新闻提要的页面。一旦用户请求显示页面,我们就转到数据库(或其他什么)并获取新闻提要。页面加载后,我们还动态添加了新的新闻项(通过ajax/json)。这意味着我们实际上有两种机制来构建新闻提要。一个是我们的服务器端语言用于初始页面请求,另一个是Javascript用于任何新项目 这很难维护(因为当某些东西发生变化时,我们必须同时改变JS机制和服务器端机制) 解决这个问题的好办法是什么?为什么?我提出了以下方案: 在html的某个地方给javascript一个初始集,并让它在文档准备

想象一个显示新闻提要的页面。一旦用户请求显示页面,我们就转到数据库(或其他什么)并获取新闻提要。页面加载后,我们还动态添加了新的新闻项(通过ajax/json)。这意味着我们实际上有两种机制来构建新闻提要。一个是我们的服务器端语言用于初始页面请求,另一个是Javascript用于任何新项目

这很难维护(因为当某些东西发生变化时,我们必须同时改变JS机制和服务器端机制)

解决这个问题的好办法是什么?为什么?我提出了以下方案:

  • 在html的某个地方给javascript一个初始集,并让它在文档准备就绪时构建初始视图
  • 让javascript对准备好获取初始数据的文档执行ajax请求;或
  • 保持如上所述,有一个JS版本和一个SS版本

我倾向于第一个场景,因此我有一个后续问题:如何为JS提供数据集?在隐藏的div或其他什么地方?

再执行一个AJAX请求来获取数据并不是非常昂贵,而且可以让您拥有一个简单的体系结构。这是一大好处

但另一个您似乎忘记的好处是,通过始终提供相同的静态资源,您可以缓存它们


在我看来,在您的初始页面中集成数据没有任何好处,只使用一个方案AJAX,然后执行初始请求。

再执行一个AJAX请求来获取数据并不是非常昂贵,而且可以让您拥有一个简单的体系结构。这是一大好处

但另一个您似乎忘记的好处是,通过始终提供相同的静态资源,您可以缓存它们


在我看来,在您的初始页面中集成数据没有任何好处,只使用一个方案AJAX,然后执行初始请求。

再执行一个AJAX请求来获取数据并不是非常昂贵,而且可以让您拥有一个简单的体系结构。这是一大好处

但另一个您似乎忘记的好处是,通过始终提供相同的静态资源,您可以缓存它们


在我看来,在您的初始页面中集成数据没有任何好处,只使用一个方案AJAX,然后执行初始请求。

再执行一个AJAX请求来获取数据并不是非常昂贵,而且可以让您拥有一个简单的体系结构。这是一大好处

但另一个您似乎忘记的好处是,通过始终提供相同的静态资源,您可以缓存它们


在我看来,在您的初始页面中集成数据没有任何好处,只使用一种方案,即AJAX,并执行初始请求。

使用单独的新闻提供者从提供数据的页面加载。这将使事情变得简单,并使其加载速度非常快,几乎与任何嵌入但隐藏的数据集一样快。

使用单独的新闻提供者从提供数据的页面加载。这将使事情变得简单,并使其加载速度非常快,几乎与任何嵌入但隐藏的数据集一样快。

使用单独的新闻提供者从提供数据的页面加载。这将使事情变得简单,并使其加载速度非常快,几乎与任何嵌入但隐藏的数据集一样快。

使用单独的新闻提供者从提供数据的页面加载。这将使事情变得简单,并使其加载速度非常快,几乎与任何嵌入但隐藏的数据集一样快。

我完全没有注意到这一点。谢谢你的洞察力。问:这样你的请求量不是会增加一倍吗?这意味着您的Web服务器(apache/nginx/whatevers接受请求)的负载增加了一倍?@Coo我不确定我是否明白您的问题。但是分离请求(对静态页面的请求和对数据的请求,具体取决于您的上下文)通常不会真正添加请求并使它们更易于访问,特别是如果您在数据访问中设法实现RESTfull的话。我完全没有注意到这一点。谢谢你的洞察力。问:这样你的请求量不是会增加一倍吗?这意味着您的Web服务器(apache/nginx/whatevers接受请求)的负载增加了一倍?@Coo我不确定我是否明白您的问题。但是分离请求(对静态页面的请求和对数据的请求,具体取决于您的上下文)通常不会真正添加请求并使它们更易于访问,特别是如果您在数据访问中设法实现RESTfull的话。我完全没有注意到这一点。谢谢你的洞察力。问:这样你的请求量不是会增加一倍吗?这意味着您的Web服务器(apache/nginx/whatevers接受请求)的负载增加了一倍?@Coo我不确定我是否明白您的问题。但是分离请求(对静态页面的请求和对数据的请求,具体取决于您的上下文)通常不会真正添加请求并使它们更易于访问,特别是如果您在数据访问中设法实现RESTfull的话。我完全没有注意到这一点。谢谢你的洞察力。问:这样你的请求量不是会增加一倍吗?这意味着您的Web服务器(apache/nginx/whatevers接受请求)的负载增加了一倍?@Coo我不确定我是否明白您的问题。但是分离请求(对静态页面的请求和对数据的请求,具体取决于您的上下文)通常不会真正添加请求并使它们更易于访问,尤其是在您设法在数据访问中恢复完整的情况下。