在Android / IOS中,200s被发送而不是304s用于图像?

时间:2013-12-23 10:21:45

标签: javascript android ios safari webkit

在我正在制作的网络应用程序中,我在用户点击界面中的“下一个”或“上一个”后,通过将其HTML附加到DOM(通过appendChild - 请注意我附加CLONED节点)来加载页面

我通过检查其.complete值来检查节点的图像是否已经加载。 (或高度,或naturalHeight等等。)如果尚未加载,我会添加一个临时加载背景,直到它被加载,用setTimeout检查。

这是我的.htaccess:

Header set Cache-Control "max-age=0; public"
ExpiresActive On
ExpiresDefault "modification"

在我的Samsung Note 2默认“Internet”浏览器*中,似乎缓存了图像,并且在图像未更改时始终发送304“未修改”请求(“未更改”) - .complete为true如果图像没有改变。

PC上也没有问题。我按照预期得到304s。

在(其他)Webkit浏览器(IOS 7和至少Android 4.1.2!)中,.complete(和所有其他值)在一瞬间是假的(可能是304,但看起来像200 ..它我很难/目前无法使用Google调试器使用Note 2进行测试)

我的问题是(搜索了3个小时之后我仍然找不到答案) - 手机上的Webkit是否应该发送240s时发送200s?这是一个错误吗?还有其他一些错误吗?有没有办法解决这个问题?

请注意,该解决方案不会涉及缓存过时的图像!

*:默认的三星互联网浏览器是较旧的Webkit浏览器,我相信......并非百分之百确定。

0 个答案:

没有答案