Браузер не будет знать, обновлен ли ErrorMessages.xml
на сервере.Он должен выдать запрос, чтобы проверить, был ли файл изменен.
Возможно, вы захотите установить опцию ifModified
на true
в вашем запросе jQuery $.ajax()
, так как он установлен на false
по умолчанию:
$.ajax({
type: "GET",
ifModified: true,
async: false,
url: "../../../ErrorMessages.xml",
dataType: "xml",
success: function (xml) {
// ..
}
});
Цитирование из документации jQuery.ajax () :
ifModified (Boolean)
По умолчанию: false
Разрешить выполнение запроса только в том случае, если ответ изменился с момента последнего запроса.Это делается путем проверки заголовка Last-Modified.Значением по умолчанию является false, игнорируя заголовок.В jQuery 1.4 этот метод также проверяет 'etag', указанный сервером, чтобы перехватить неизмененные данные.
Пока ваш веб-сервер поддерживает заголовок Last-Modified
, тогдаПервый запрос к XML будет выглядеть примерно так:
GET /ErrorMessages.xml HTTP/1.1
Host: www.example.com
HTTP/1.1 200 OK
Last-Modified: Wed, 06 Oct 2010 08:20:58 GMT
Content-Length: 1234
Однако последующие запросы к тому же ресурсу будут выглядеть так:
GET /ErrorMessages.xml HTTP/1.1
Host: www.example.com
If-Modified-Since: Wed, 06 Oct 2010 08:20:58 GMT
HTTP/1.1 304 Not Modified
Если веб-сервер обнаружит, что файлбыл изменен с даты заголовка If-Modified-Since
, файл будет обслуживаться нормально.