| Summary: | Safari does not cache JsLibraryServiceHandler request | ||
|---|---|---|---|
| Product: | [RT] RAP | Reporter: | Ralf Sternberg <rsternberg> |
| Component: | RWT | Assignee: | Project Inbox <rap-inbox> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | tbuschto |
| Version: | 1.4 | ||
| Target Milestone: | 1.5 M4 | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Bug Depends on: | 345120 | ||
| Bug Blocks: | 323032, 338647 | ||
|
Description
Ralf Sternberg
It seems that there is a special type of "cache-manifest" files for Safari that can be delivered by the web server to identify resources to cache. See this document, section "Caching application files": http://matt.might.net/articles/how-to-native-iphone-ipad-apps-in-javascript/ IE also does not cache the javascript-file. (Tested IE7 and IE9 RC). The "cache-manifset" is an HTML5-feature: http://www.webreference.com/authoring/languages/html/HTML5-Application-Caching/ Chaching on the iPhone is a nightmare: http://www.phpied.com/iphone-caching/ Apparently the only thing that seems worth trying is the HTML5-method. As for IE: Cache actually works fine if you are re-entering the URL or use another URL (different startup param). Only when the "reload" action is used the files are all loaded from the server in any case. There seems no way around that. Made worse by the fact that sometimes (not always) pressing enter while focusing IEs address-field does not reload the page either, so the reload-action is the only option to restart the application. It turned out that registering the concatenated javascript file as a resource (as suggested in bug 335545) fixes the problem for Safari on desktop and mobile. The servlet container sends Last-Modified and Etag headers, and Safari correctly adds If-Modified-Since and If-None-Match headers to subsequent requests, receiving only a HTTP 304 "Not Modified" response. According to comment 5, this issue has been fixed together with bug 345120. |