Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не меняется загружаемый xml (http://www.flasher.ru/forum/showthread.php?t=150083)

kynisa 06.02.2011 02:15

Не меняется загружаемый xml
 
Здравствуйте. Столкнулся с такой проблемой - есть код, который загружает xml-файл, генерируемый скриптом

Код AS3:

function loadQuestions():void {
    var questionloader:URLLoader = new URLLoader();
    questionloader.addEventListener( Event.COMPLETE, onQuestionXMLload );
    questionloader.load( new URLRequest( "путь к скрипту на сервере" ) );
}
function onQuestionXMLload(event:Event):void {
        var NewDataSet:XML = new XML( event.target.data );
        for each (var property:XML in NewDataSet.Values) {
                var question:Question = new Question();
                question.text=property.Question;
                question.id=property.Id_Questions;
                questionList[questionsNum]=question;
                questionsNum++;
        }
        showQuestions(questionsShown);
}

Так вот, если вызвать функцию loadQuestions() первый раз, загрузит нормально. Потом данных стало больше, в новом xml-файлу больше объектов(или меньше, неважно), второй раз вызываем loadQuestions() и ничего не меняется. Грузится тот же xml-файл что и в первый раз, причем сервер отдает все правильно!

Мало того, если перезапустить проект в среде разработки(Adobe Flash CS4), тоже будет грузится xml-файл, что и в первый раз! Помогает только перезагрузка, после нее грузится новый файл, и дальше опять не меняется.

Кто-то еще с таким сталкивался? В чем может быть проблема?

P.S. Скрипт написан на VB.Net, запускается на локальном сервере(localhost)

Gaen 06.02.2011 02:35

Ваш xml кэшируется. Чтобы этого избежать, добавьте к урлу рандомный параметр.

wvxvw 06.02.2011 02:46

Лучше все-таки, если нужен каждый раз новый XML - запрашивать и отдавать его используя POST метод. Он не кеширует содержание. Потому что добавляя произвольный параметр к GET запросу вы кладете в кеш браузера еще один лишний файл, который никогда не будет использоваться (т.е. вы используете GET не по назначению). если же содержание файла предполагается менять с определенной частотой, то ваш сервер должен об этом сообщать агенту пользователя, для этого существуют статусы, например, 304 - "не изменился", если ваш сервер отвечает с таким статусом, то агент должен использовать имеющуюся у него копию. Если вы не можете повлиять на то, как работает сервер, тогда оптимальным вариантом было бы при каждом обновлении XML передавать новое имя во FlashVars, таким образом избавив пользователей от кеширования безумного количества копий одного и того же файла, и когда нужно, использовать кеширование (что тоже очень облегчает пользователям жизнь).


Часовой пояс GMT +4, время: 01:25.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.