Я пишу приложение Flex, используя запросы REST, и пытаюсь избежать кеширования HTTP, а также синхронизировать время клиент/сервер. Для этого я создал timestamp
собственность как таковые:Свойства Flex ведут себя странно при использовании в HTTPService
// returns a timestamp corrected for server time
private function get timestamp() : Number
{
return new Date().getTime() + clientClockAdjustMsec;
}
(clientClockAdjustMsec
я уже установлен с помощью специальной харизмы)
Я также попытаться включить временную метку в моей строке запроса, как это:
<mx:HTTPService url="/Service?ts={timestamp}" ...
Но то, что я вижу в журналах доступа, является странным. Это примерно так:
1.2.3.4 - - [06/Aug/2009:17:19:47 +0000] "GET /Service?ts=1249579062937 HTTP/1.1" 200 478
1.2.3.4 - - [06/Aug/2009:17:20:13 +0000] "GET /Service?ts=1249579062937 HTTP/1.1" 200 500
1.2.3.4 - - [06/Aug/2009:17:20:14 +0000] "GET /Service?ts=1249579062937 HTTP/1.1" 200 435
Посмотрите, как временные метки одинаковы? Так странно. Я ожидал бы, что он будет оценивать свойство каждый раз, как это делают для переменных Bindable.
(На самом деле, я только что проверил еще раз, и это действительно делает то же самое для связываемых переменных. Но не со всеми клиентами. Есть некоторые версии Flash, есть «проблемы»?)
Joel is correct. Поскольку вы никогда не говорите своему HTTPService о том, что значение «timestamp» изменилось, он не знает, как обновлять привязки данных. – Dan
* TECHNICALLY * это не привязка данных, поскольку она относится к выходному значению функции, а не к свойству. – cwallenpoole
Я обновил ответ, чтобы отразить вашу разработку Кристофера. Спасибо, что указали. –