2

我在 Ember 中有一个小型通信应用程序,每 10 秒轮询一次服务器以获取新数据。

在每个线程旁边,或在线程下回复,都有一个用户区域,显示用户的电子邮件、头像和徽章。头像托管在 s3 上,每次站点发送 JSON 数据时,都会为 s3 上的每个头像发送一个获取请求。

头像旁边还有其他图像,例如徽章图标,但它们托管在 Rails 公共文件夹中,不会触发获取请求。

为什么会这样?每次从服务器返回 JSON 时,有没有办法缓存或抑制 get 请求?

4

1 回答 1

2

为什么会这样?

  1. 听起来您的某些视图在获取新数据时会重新渲染。可以通过更改模板的结构来防止这种情况发生,但这对于这种情况来说可能是多余的。如果您想查看发生了什么,请尝试在视图重新渲染时将检测添加到您的应用程序到 console.log:如何分析 ember 的页面渲染性能?

  2. 假设头像和其他图像都被重新渲染,s3 可能会触发新的 get 请求,因为 s3 返回的标头未设置为允许浏览器缓存。

每次从服务器返回 JSON 时,有没有办法缓存或抑制 get 请求?

是的,调整 s3 图像的设置,以便浏览器缓存它们。

于 2013-04-04T13:21:03.190 回答