Json.NET имеет опции автоматического исключения значений нуля или по умолчанию.
Это, вероятно, проблема с кешем. В консоли сетевого браузера вы должны увидеть ответ типа 304 Не изменено.
Конечно, вы можете добавить элемент в URL, чтобы обойти кеш:
updates.open('GET','scripts/check_for_notifications.php&nocache=' + new Date().getTime(), true);
Если это работает, вам нужно будет настроить сервер (apache или nginx), чтобы предотвратить кэшируется. Это чище, чем решение с отметкой времени. браузер не хранит кэшированные файлы без необходимости.
Apache .htaccess или Apache conf, что-то вроде
<Files "check.php">
<IfModule mod_headers.c>
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires 0
</IfModule>
</Files>
Nginx conf, что-то вроде
location = /check.php {
add_header 'Cache-Control' 'no-cache, no-store, must-revalidate';
expires off;
}
Вы также можете увидеть api: https: // hacks.mozilla.org/2016/03/referrer-and-cache-control-apis-for-fetch/
Будьте осторожны с вашим кодом, он может запустить несколько запросов одновременно и найти Если у вас слишком много пользователей, вы можете использовать DOS.
Если запросы занимают более 2 секунд из-за медленной работы сервера, другие запросы тем временем будут отправлены, что еще больше замедлит работу сервера ...