У меня запускается скрипт tampermonkey, который запускается каждую секунду - делает запрос к серверу для получения данных, данные там только около 0,1% времени, когда данные есть - он делает еще один ajax-запрос, используя jQuery $ .ajax
Теперь при запуске этого Firefox увеличивается примерно на 1 ГБ каждые 1,5-2 часа, и в итоге происходит сбой в течение нескольких часов.
Сценарий прост, он проверяет веб-адрес на наличие строки и, если он есть, он проверяет:res.responseText.length == 36 && $ ('# xxxxx'). length (вторая часть проверяет, вошел ли пользователь на веб-сайт), а затем делает запрос API.
я перепробовал около 30 версий - этаэто лучшее, что я мог бы сделать :( - что еще хуже - увеличение памяти на 1 Гб каждые несколько минут: D
// ==UserScript==
// @name xxxx
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://xxxx.xx/
// @grant GM_xmlhttpRequest
// @require https://xxx.xx/content/js/jquery-3.1.1.min.js
// @require https://xxx.xx/content/js/jquery.cookie.js
// ==/UserScript==
function xxxxxxxxx() {
GM_xmlhttpRequest({
method: "GET",
url: "http://xxx.xxx.xxx.xxx/api.php?method=data&action=getData",
onload: function (res) {
//VALID only ~0.1% of time
if (res.responseText.length == 36 && $('#xxxxx').length) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
headers: {
"X-XSRF-TOKEN": $.cookie("XSRF-TOKEN-VALUE")
},
data: JSON.stringify({'data': res.responseText}),
url: "https://xxxx.xxx.xx",
onload: function (result) {
console.log(result.responseText);
}
});
}
res = undefined;
delete (res);
},
onerror: function () {
//nothing
}
});
}
(function () {
'use strict';
//only running if correct website with #
if (!/#\/xxxxxx.*/.test(location.hash)) return;
//running every seconds
setInterval(xxxxxxxxx, 1000);
//reload page every 10 minutes
setInterval(function () {
location.reload();
}, 360 * 1000);
})();
Firefox 66.0.5 (текущий) TamperMonkey 4.9.5941 (текущий)