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);

Я знаю, что это ужасно, но это может сработать.

Надеюсь, что это так.

Другие вопросы по тегам