不断更新cookie会导致浏览器崩溃
Constantly updating cookie causes browser crash
问题背景:
我通常会把浏览器停在我的梦幻棒球现场得分页面上过夜。第二天,浏览器总是很慢,经常崩溃。
经过一些调查,我确信这是由网站每1秒更新一次cookie引起的。如果我在网站的域上打开了5个选项卡(我经常这样做(,它会每秒更新cookie 5次。
调试:
我使用火狐4.0与firebug和firecookie。
会话cookie名为">fsr.a",包含一个*nix时间戳。我相信它被称为"预见触发器",是某种广告软件。
你可以在这里看到它的作用(无需登录(:http://www.cbssports.com/
cookie似乎是由以下文件设置的:http://sports.cbsimg.net/js/phase2-min-v0047.js
修复:
我试过广告屏蔽它,但那破坏了网站。我试着写一个Greasemonkey脚本来对抗它,但我对JS还不够好。我显然无法阻止域上的所有cookie。
只是在寻找想法,或者用Greasemonkey脚本找到一个正确的方向。
编辑:
我想知道我是否可以用Greasemonkey更改计时器变量,以减少cookie的更新频率?
作为参考,我相信这是负责">fsr.a"cookie的代码:
var FSR = {
version: "5.3.0",
date: "11/11/2009",
enabled: true,
files: "http://images.cbssports.com/script/foresee/",
id: "7alXWMyc064b1ROgR/DloA==",
sites: [{
path: /'w+-?'w+'.(com|org|edu|gov|net)/
}, {
path: ".",
domain: "default"
}]
};
function fsr$setAlive() {
var a = new Date().getTime();
document.cookie = "fsr.a=" + a + ";path=/" + ((FSR.site.domain) ? ";domain=" + FSR.site.domain + ";" : ";")
}(function () {
if (window != window.top) {
return
}
function g(k) {
if (typeof k == "object") {
var l = k.constructor.toString().match(/array/i);
return (l != null)
}
return false
}
var e = FSR.sites;
for (var h = 0, a = e.length; h < a; h++) {
var c;
if (!g(e[h].path)) {
e[h].path = [e[h].path]
}
for (var j = 0, b = e[h].path.length; j < b; j++) {
if (c = document.location.href.match(e[h].path[j])) {
FSR.siteid = h;
FSR.site = FSR.sites[FSR.siteid];
if (!FSR.site.domain) {
FSR.site.domain = c[0]
} else {
if (FSR.site.domain == "default") {
FSR.site.domain = false
}
}
if (!FSR.site.name) {
FSR.site.name = c[0]
}
var d = ["files", "js_files", "image_files", "html_files"];
for (var h = 0, f = d.length; h < f; h++) {
if (FSR.site[d[h]]) {
FSR[d[h]] = FSR.site[d[h]]
}
}
break
}
}
if (c) {
break
}
}
if (!window["fsr$timer"]) {
fsr$setAlive();
window["fsr$timer"] = setInterval(fsr$setAlive, 1000)
}
})();
交替粘贴:http://pastebin.com/YrHFCZn1
似乎需要注册并登录该网站才能设置cookie。我不会那样做,所以我不能测试修复。
但是,看看JS,下面的一个或多个应该可以从Greasemonkey中工作:
-
clearInterval (unsafeWindow["fsr$timer"]); unsafeWindow["fsr$timer"] = null;
-
unsafeWindow["fsr$setAlive"] = function () {}
最坏的情况发生:
- 将JS文件复制到你的电脑上
- 编辑它,杀死计时器
- 使用adblock只屏蔽原始JS文件
- 使用Greasemonkey应用修改后的JS
- 为什么这会造成一个无休止的循环并使我的浏览器崩溃
- javascript audio currentTime使一些浏览器崩溃
- 在浏览器崩溃之前检测到内存耗尽
- 输入输入前浏览器崩溃
- three.js内存泄漏/浏览器崩溃
- Ajax 请求仪表板页面上的浏览器崩溃
- set超时在“while”内会导致浏览器崩溃.我怎样才能避免它
- 设置设置间隔函数正在运行并导致浏览器崩溃
- 高效的Javascript组合函数,不会使浏览器崩溃
- 我的脚本使浏览器崩溃
- SlickGrid在选择大范围的行时使浏览器崩溃
- setInterval 在运行用户脚本时使我的浏览器崩溃
- 添加依赖项后浏览器崩溃
- Javascript/Jquery代码使我的浏览器崩溃
- 无限滚动会导致浏览器崩溃吗?
- 为什么这 while 循环会使浏览器崩溃
- 设置间隔导致浏览器崩溃
- JavaScript函数使我的浏览器崩溃
- 旧的JavaScript函数使浏览器崩溃
- 如何使用 IndexedDB 制作一个很长的字符串而不会使浏览器崩溃