Просмотр полной версии : IE - как заставить "увидеть" изменения в файле?
наступил на грабли - подскажите как побороть?
Скрипт на странице каждые 10сек проверяет файлик и если находит что то новое - загружает на страницу, файлик обновляеться сторонней софтиной.
$(document).ready(function()
{
showMsg();
...
setInterval('showMsg()', 10000);
});
FF, Opera, Chrom, прекрасно обновляються, IE нет, как и его заставить на это реагировать?
wc3banderlog
10.04.2013, 15:36
О каком "файлике" идет речь? что он проверяет и как?
файл текстовый - содержание: текст с тегами (<b><font color...> etc.) лежит там же где и страница html
вот эта функция вызываеться:
function showMsg()
{
$.get('msg.txt', function(data)
{
$('#msgtext').html(data );
}
};
если меняю содержание msg.txt все браузеры его сразу выводят (по истечению 10сек) а IE10 даже - нехочет, словно у него все в кеш загружено...
nikita.mmf
10.04.2013, 15:46
get запросы в IE кэшируются
$.get('msg.txt?' + (new Date().getTime()), function(data){$('#msgtext').html(data );});
danik.js
10.04.2013, 15:50
Скрипт на странице каждые 10сек проверяет файлик и если находит что то новое - загружает на страницу
Помоему скрипт тупо каждые 10 секунд загружает на страницу файл, даже если изменений нет ))
Пользователи лимитного интернета ваш сайт оценят )))
O, так и подозревал, спасибо за подсказку, теперь работает! :)
Помоему скрипт тупо каждые 10 секунд загружает на страницу файл, даже если изменений нет ))
Пользователи лимитного интернета ваш сайт оценят )))
ну во первых я не привел всю логику что там происходит с этим файликом, во вторых это будет интранетовский сайт, в третьих - те пользователи что будут работать с сайтом давно не задаются вопросом трафика - Европа фигле :) тут оптика у каждого почти :)
Хотя если предложите способ как грузить файлик только когда он изменится - буду премного благодарен.
Хотя если предложите способ как грузить файлик только когда он изменится - буду премного благодарен.
Cтавьте вместо
$.get('msg.txt?' + (new Date().getTime()), function(data){$('#msgtext').html(data );});
PHP скриптом реальную дату(переведенную в секунды) изменения файла
php никак :( нужен сервер ставить, а так с локалки работает через шару
а можент можно на jquery получить дату создания файла?
php никак нужен сервер ставить, а так с локалки работает через шару
Тады никак, поскольку откель комп пользователя узнает об изменениях ?
Можно просто проставить более длительный срок антикеша, к примеру -минута
parseInt(new Date().getTime()/(1000*60))
danik.js
10.04.2013, 16:24
Можно сделать HEAD запрос на получение заголовков и проанализировать заголовок Last-Modified.
Правда тогда обновление файла будет требовать не один запрос, а два. Сначала проверка даты, а потом уже загрузка файла.
не, не. Я не об изменении страницы, а файла с даными только, там не хтмл а просто текст с тегами форматирования собщения, запроса может и два придеться делать, но логичнея все же как вы советуете проверить дату модификации вот только где то хранить нужно последнию дату - страницей то могут пользоваться человек 120 изначально, а сообщений в файле теоретически может быть и 200. так что логика есть посмотреть дату и если отличаеться тогда грузить весь в обработчик...
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot