Отследить изменения в документе на сервере.
На моем сервере имеется некий json файл, например:
[ { "name": "Vasya", "age": "20", "contacs": { "tel": "123", "mail": "vasya@vasya.com" } }, { "name": "Petya", "age": "20", "contacs": { "tel": "123", "mail": "petya@petya.com" } } ] Я загружаю его аяксом и генерирую из него таблицу $.ajax({ url: 'base.json', dataType: 'text', success: function (data) { callBack(data); // Обрабатываю данные, генерирую таблицу } }); Теперь мне нужно, например, каждую минуту (60 сек.) проверять не изменился ли документ, и если изменился то загрузить и перегенерировать таблицу. Вопрос: Как правильно реализовать наблюдение за этим файлом? Хочется с минимальным траффиком, так как документ увесистый. |
проверять время изменения файла, если не совпадает с предыдущим.. значит внесли изменения
|
Цитата:
У меня nginx стоит и он после первой загрузки этого файла отдает заголовок HTTP 304, я пробовал ориентироваться на этот статус. Но у меня никак не удается его отловить, постоянно ajax.status === 200 |
Magneto,
При сохранении дописывать хеш в секундах текущей даты, в виде добавки к base.json?1340304169; И первой переменной в самом json тож дату прописываем А На клиенте нун добавлять случайный хеш $.ajax({ url: 'base.json?'+Math.random, dataType: 'text', success: function (data) { callBack(data); // Обрабатываю данные, генерирую таблицу } }); |
Цитата:
|
Цитата:
По анализу последнего - грузите - не грузите файл |
Я думал об этом, но так вышло что я не могу создавать еще какие либо файлы или самому модифицировать основной существующий json файл.
Пока я вижу два выхода: 1. Работать с заголовком ответа 304 и временем модификации. 2. Или каждый раз полностью загружать json файл (а он довольно увесистый) и сравнивать с имеющимся. |
Цитата:
Ие(по крайней мере до 9) Будет вам выдавать 200, как и при первом получении ( про остальные не помню - но есть и там в некоторых аналогичное |
Цитата:
нафига жирный json туда сюда таскать. 1)Все сравнения только на сервере. 2) Опрашивай каждые 60 секунд. 3) возвращай два типа json файлов, один когда изменились данные, это json файл полностью, второй если нефига не изменилось (1 строчку), ну примеру {reload:false}. упс незаметил что модифицировать ты не можеш. Ну тогда боюсь придётся целиком. Ну или заведите вспомогательный скрипт посредник на другом сайте, и пусть он забирает json с твоего сайта по мере необходимости, но не чаще чем раз в 60 секунд. А клиент будет забирать json уже у посредника. |
Цитата:
|
Часовой пояс GMT +3, время: 05:40. |