AS3: не работает несколько запросов get get URL
Я пытаюсь прочитать данные с сервера с помощью GET URLRequest с URLLoader, и это работает. Проблема в том, что это работает только один раз.
public class Settings
{
private static var request:URLRequest;
private static var loader:URLLoader;
public static function getRequest(url:String):void
{
request = new URLRequest(url);
request.method = URLRequestMethod.GET;
loader = new URLLoader();
loader.addEventListener(flash.events.Event.COMPLETE, responseHolder);
loader.load(request);
}
}
Всякий раз, когда я открываю приложение Flash, я вставляю это и вызываю getRequest, я получаю правильные данные из URLLoader. Всякий раз, когда я вызываю его позже, я все равно получаю ответ, и Event.COMPLETE все еще отправляется, но полученные данные всегда являются данными, полученными из первого GET. Только если я закрою и снова открою приложение, GET получит самые последние данные.
Я также запустил сеанс удаленной отладки, чтобы проверить это, и оказалось, что только первый вызов этой функции даже связывается с сервером, с которого она пытается прочитать.
Единственное объяснение этому, о котором я могу подумать, состоит в том, что URLRequest и URLLoader не очищаются после чтения данных, поэтому, когда вызывается другой GET, они просто повторно используют последние полученные данные, не пытаясь связаться с сервером. Но я очищаю их, как таковые:
//in Settings class
private static function responseHolder(e:flash.events.Event):void
{
request = null;
loader.removeEventListener(flash.events.Event.COMPLETE, responseHolder);
loader.close();
loader = null;
}
Что-то, что я должен сделать, чтобы повторно включить GET URLRequests?
1 ответ
Вы должны попытаться добавить случайное число в конце URL, чтобы предотвратить кеширование в браузере:
request = new URLRequest(url + "?n=" + Math.random()*10000);
Я знаю, что это ужасно, но это может сработать.
Надеюсь, что это так.