2009-12-16 79 views
0

直到我嘗試從JSONP端點中包含數據時,我對緩存的脫機應用程序有好運。這裏有一個小例子,它加載由新的Netflix插件API一部電影:如何避免讓JSONP返回緩存在HTML5離線應用程序中?

<!DOCTYPE html> 
<html manifest="main.manifest"> 
    <head> 
     <title>Testing!</title> 
    </head> 
    <body> 
    <p>Attempting to recover a title from Netflix now...</p> 
    <script type="text/javascript"> 
    function ping(r) { alert('API reply: ' + r.catalog_title.title.regular); } 
    var cb = new Date().getTime(); 
    var s = document.createElement('SCRIPT'); 
    s.src = 'http://movi.es/7Soq?v=2.0&output=json&expand=widget&callback=ping&cacheBuster=' + cb; 
    alert('SCRIPT src: ' + s.src); 
    s.type = 'text/javascript'; 
    document.getElementsByTagName('BODY')[0].appendChild(s); 
    </script> 
</body> 
</html> 

...這是我的清單,main.manifest,其中不包含任何文件,並且只有在那裏,所以我的瀏覽器就會知道的內容緩存調用的HTML文件。

CACHE MANIFEST 

是的,我已經證實了我的服務器發送清單來與正確的內容類型,text/cache-manifest

該應用工作正常 - 這意味着兩個警報顯示 - 我第一次運行它,但後續運行,即使嘗試在第10行高速緩存清除,似乎試圖從緩存中加載腳本no重要的是查詢字符串是什麼。我看到顯示腳本源的警報,但回調從未觸發。

如果我從第2行刪除清單鏈接並重置我的瀏覽器(作爲Safari和iPhone模擬器)以清除緩存,它每次都有效。我也試着提醒頁面中SCRIPT標籤的數量,並且在所有情況下都能看到現有的和動態創建的標籤。

回答