2010-03-17 74 views
0

我的問題是關於XML加載。我需要避免xml緩存。在本地測試中緩存的XML

在Web服務器上,該技術添加了一個隨機參數來重新加載每次XML文件。 但在本地測試(在Flash CS4 IDE,CTRL +回車),下面的線是不可能的:

var my_date : Date; 
path = "toto.xml?time="+my_date.getSeconds()+my_date.getMilliseconds(); 

有什麼絕招來繞過這個問題? 我讀過不同的論壇關於「刪除」的方法,我們刪除了XML對象,然後重新創建一個新的。

在我的情況下,我把:myXML = null; myXML = new XML (loadedData); 但它根本不起作用。

我發現了一些有趣的東西,但對於Air 1.0不幸的是cacheResponse。 在AS3我發現:

var loader  : URLLoader = new URLLoader(); 
var urlRequest : URLRequest = new URLRequest(xmlUrl); 
var header  : URLRequestHeader = new URLRequestHeader ("pragma", "no-cache"); 
urlRequest.requestHeaders.push(header); 

但它不起作用。

我花了很多時間在這個問題上,如果任何人有一個很好的解決方案... 謝謝。

回答

1

最近我一直在使用,它可以讓我完全禁用緩存調試代理開始,但我的確在此之前,我用這個小動作片段來解決這個問題:

import flash.system.Capabilities; 

var url:String = "foo.xml"; 
if (Capabilities.playerType == "StandAlone" || Capabilities.playerType == "External") { 
    // running locally, cache busting not required 
} else { 
    // running in browser 
    url += "?rnd=" + Math.random(); 
} 
+0

應該選擇它作爲答案。它確實幫助了我。 – Bojan 2010-11-24 11:54:49

0

主要巨魔,但:附註不是控制緩存的最佳選擇。花點時間研究緩存:http://www.mnot.net/cache_docs/#PRAGMA

畢竟,在URL查詢字符串的末尾添加一個隨機數仍然是通過緩存來越過所有monkeybusiness的絕對方式。