2013-03-26 3 views
0

Получилось странное здесь, что, безусловно, заставило меня почесывать голову.XML от ответа исчезает при обновлении

Программа: Загружает электронную таблицу через iFrame/AJAX на сервер. .JSP/APACHE POI считывает, проверяет и возвращает данные в формате XML. JavaScript читает XML и отображает его в таблице для визуального подтверждения.

Задача: Программа отлично работает - пока пользователь не обновит страницу. XML не возвращается должным образом, поддерживая форматирование, но пропуская данные. Загрузка другого файла или обновление снова ничего не меняет, ответ XML остается неизменным.

XML:

<records> 
    <groups> 
     <group> 
      <name> 
       <cell>B9</cell> 
       <value>Group Name</value> 
       <error></error> 
      </name> 

      <...more data...> 

     </group> 
    </groups> 

    <data> 
     <groups>3</groups> 
     <users>0</users> 
     <errors>5</errors> 
    </data> 
</records> 

как это должно появиться, но вместо этого на освежающий возвращение:

<records> 
    <groups /> 

    <data> 
     <groups>3</groups> 
     <users>0</users> 
     <errors>5</errors> 
    </data> 
</records> 

Нижние три числа (группы, пользователи и ошибками). jsp, которые увеличиваются во время процесса проверки, а это значит, что для них необходимо иметь данные. Каждый раз, когда страница выполняется переменные устанавливаются значения по умолчанию в 0, пустой, и т.д.

Насколько я могу видеть, есть только две возможности:

  • на основе AJAX возвращает кэшированную страницу
  • .jsp вспоминает предыдущий запрос

Но я исследовал заголовки запретных для кэша, файл заново имена и т.д., но безрезультатно.

Другие ноты: Функция Iframe/AJAX успешно загружает файл на сервер каждый раз, когда правильное имя файла передается на страницу .jsp проверки Первый запуск всегда работает отлично

проверочный код довольно длинный, но я могу найти что-то, чтобы опубликовать его, если это действительно необходимо (но поскольку код работает отлично в первый раз, я думаю, что это проблема связи/кеша). Если у кого-то есть мысли, я слушаю.

+0

Я предполагаю, что вы столкнулись с проблемой, что запрос Ajax не кэшируется. Я не уверен, что вы можете включить его, но вы можете попробовать советы, приведенные в [этой записи в блоге] (http://blog.httpwatch.com/2009/08/07/ajax-caching-two-important- факты /) –

ответ

0

Я спал на нем, и я, кажется, решил это сегодня утром.

По любой причине, каждый раз, когда вызывается .JSP-файл, он использует тот же самый процесс, что и раньше, вместо того, чтобы перезагружать и переделывать страницу с нуля каждый раз. Я не знаю, почему, но я думаю, это может быть настройка на сервере, о котором я не знаю.

Я повторил сброс переменной в основной процедуре по умолчанию, и теперь она работает правильно.

Смежные вопросы