Light12306/Web12306/js/ui/ui-dnsspeeding.js
2014-09-03 23:20:12 +08:00

69 lines
2.0 KiB
JavaScript

define(function (require, exports, module) {
var port = require("../platform/extensionPort.js");
var isValid = 0;
var serverSpan = $("div.net-tips");
var sysConfig = null;
var checkSpeedTimer = null;
var refreshSpeed = function () {
port.sendMessage({ action: "getCurrentServer" }, function (m) {
var data = m["kyfw.12306.cn"];
var speed = data.speed;
//var cls = speed === 0 ? "label-default" : speed < 0 ? "label-danger" : speed < 100 ? "label-success" : speed < 400 ? "label-warning" : "label-danger";
serverSpan.find("strong:eq(1)").html(speed > 0 ? speed + " 毫秒" + (data.rate ? " (加速" + data.rate + "%)" : "") : speed < 0 ? "无法连接" : "正在测速...");
serverSpan.find("strong:eq(0)").html(!data.ip ? "默认服务器" : data.ip);
});
};
var checkStatus = function () {
serverSpan.hide();
if (isValid <= 0) {
$("#swDnsSpeeding").hide();
} else {
$("#swDnsSpeeding").show();
if (sysConfig.enableServerAutoChange) {
serverSpan.show();
$("#swDnsSpeeding").html("关闭加速");
refreshSpeed();
} else {
$("#swDnsSpeeding").html("启用加速");
}
}
if (isValid > 0) {
if (!checkSpeedTimer)
checkSpeedTimer = setInterval(refreshSpeed, 3000);
port.sendMessage({ action: "triggerUpdate" });
} else {
if (checkSpeedTimer) {
clearInterval(checkSpeedTimer);
checkSpeedTimer = null;
}
}
};
$("#swDnsSpeeding").click(function () {
var enabled = !sysConfig.enableServerAutoChange;
port.sendMessage({ action: "setUserConfig", detail: { enableServerAutoChange: enabled } });
});
var checkServerValid = function () {
port.sendMessage({ action: "servervalid" }, function (r) {
isValid = r.valid;
checkStatus();
});
};
port.port.on("sysConfigUpdate", function (e, data) {
sysConfig = data;
checkStatus();
});
var reloadSysConfig = function () {
port.sendMessage({ action: "getSysConfig" }, function (data) {
sysConfig = data.detail;
checkServerValid();
});
};
reloadSysConfig();
});