我们有一个JavaScript小部件,可从URL加载数据。
为了减少往返,我想避免第二个HTTP请求,并将数据放入HTML页面。
如果我可以不更改JavaScript小部件,那将是很棒的。
是否有URL方案可以从当前HTML页面读取数据?
示例:此https://....
代替dom://....
最佳答案
我还是dataURIs的拥护者,因为它们是在网页中实现数据嵌入的最透明(客户端代码方式)的方式。
但是,由于连接开销以及parallel download limitations of HTTP/1,它们首先被用来嵌入小的图像和其他资源,这些资源会影响性能。这种权衡之所以微妙,是因为将数据编码为dataURIs可能会导致30%的increase in data size(估计),但是dataURIs停止提供帮助的关键点是小图像的大小,通常比序列化数据高几个数量级。
对于单页应用程序场景,这里的关键点是要考虑的不仅仅是单次数据获取往返。
在其他静态HTML上嵌入供页面脚本使用的数据具有以下含义:
另一方面,将数据保留在单独的往返行程中,尽管往返行程本身也会:
在我看来,所有这些都是大赢家,因此,我建议您认真考虑嵌入数据的需求,因为这可能是早期优化,可能会导致很多痛苦并实际上导致性能下降!特别是因为SPDY和现在的HTTP/2已经开始解决这些往返和连接号问题。