将两个http响应合并为一个

问题描述:

是否可以通过Java或Php发送附加到http响应的额外数据?将两个http响应合并为一个

我的网站是一个家庭作业平台:一个用户将homeworks输入到数据库中,然后所有用户都可以在网站上看到作业。当前的负载效率非常低,因为浏览器发出两个请求加载的请求:一个用于索引文件,一个用于homeworks。对于家庭作业请求,客户端还将用户的设置发送到服务器,基于此,返回的作业由Php脚本生成。

现在,我想知道如果有可能将这两个请求合并为一个吗?是否有可能通过服务器上的Java或Php检测http请求,读取cookie(保存设置的位置),然后从数据库获取homeworks并将附加到http响应的数据发送给客户端?或者,更好的做法是,首先只返回索引文件,并尽快将作业数据作为第二个响应,因为当客户端无法显示作业时,客户端需要一些时间来解析构建DOM树无论如何。

在浏览网页时,我偶然发现了诸如“服务器端呈现”和“SPDY”等术语,但我不知道这些是否是正确的起点。

任何帮助都非常感谢,因为我个人非常感兴趣的解决方案,它会大大提高我的网站的加载时间。

+0

“浏览器发出两个加载请求:一个用于索引文件,另一个用于作业” - 我不明白你的意思。你可以发布相关的代码来展示它的工作原理吗? – kittykittybangbang

+0

由于作业不是一个静态内容,它需要每次从数据库中获取它们。这是通过一个Ajax请求完成的,该请求执行一个PHP脚本,然后将从数据库获取的homeworks返回给客户端。然后,客户端将作业添加到Dom树中。你可以在这里找到网站:aaron.filosofisch.com(虽然是德语) –

+0

仍然需要一些帮助。可以办到。 – Misunderstood

解决您的问题的一个简单方法是在索引文件中初始化您的数据。

您将创建一个javascript对象,并将其嵌入到由服务器呈现的html中。您可以将此对象放置在全局名称空间中(例如window.initData下),以便可以通过脚本中的代码访问它。

<scipt> 
window.initData = { 
    someVariable: 23, 
}; // you could use json_encode if you use php, or Jackson if you use java 
</script> 

但是,如果您的数据是在单独的服务器请求中提取的,那么这不是一个大问题。尤其是当需要更多时间从数据库/ Web服务中检索数据时,您可以通过非常快速地获取静态内容并在加载(较慢)数据时显示旋转器来提供更好的用户体验。