javascript - 如何在 html 中自动执行 Javascript 并使用 ajax 将变量发送到 php?
问题描述
我找到了一个可以测量用户下载速度的java脚本,它非常接近真实速度,这里是代码。
//JUST AN EXAMPLE, PLEASE USE YOUR OWN PICTURE!
var imageAddr = "http://www.kenrockwell.com/contax/images/g2/examples/31120037-5mb.jpg";
var downloadSize = 4995374; //bytes
function ShowProgressMessage(msg) {
if (console) {
if (typeof msg == "string") {
console.log(msg);
} else {
for (var i = 0; i < msg.length; i++) {
console.log(msg[i]);
}
}
}
var oProgress = document.getElementById("progress");
if (oProgress) {
var actualHTML = (typeof msg == "string") ? msg : msg.join("<br />");
oProgress.innerHTML = actualHTML;
}
}
function InitiateSpeedDetection() {
ShowProgressMessage("Loading the image, please wait...");
window.setTimeout(MeasureConnectionSpeed, 1);
};
if (window.addEventListener) {
window.addEventListener('load', InitiateSpeedDetection, false);
} else if (window.attachEvent) {
window.attachEvent('onload', InitiateSpeedDetection);
}
function MeasureConnectionSpeed() {
var startTime, endTime;
var download = new Image();
download.onload = function () {
endTime = (new Date()).getTime();
showResults();
}
download.onerror = function (err, msg) {
ShowProgressMessage("Invalid image, or error downloading");
}
startTime = (new Date()).getTime();
var cacheBuster = "?nnn=" + startTime;
download.src = imageAddr + cacheBuster;
function showResults() {
var duration = (endTime - startTime) / 1000;
var bitsLoaded = downloadSize * 8;
var speedBps = (bitsLoaded / duration).toFixed(2);
var speedKbps = (speedBps / 1024).toFixed(2);
var speedMbps = (speedKbps / 1024).toFixed(2);
ShowProgressMessage([
"Your connection speed is:",
speedBps + " bps",
speedKbps + " kbps",
speedMbps + " Mbps"
]);
}
}
我根本没有使用 java 脚本的经验,首先,我想编辑这段代码以执行而不显示任何消息,然后我希望它在空 html 中自动运行并使用 ajax 将页面重定向到( url + speedMbps javascript 变量)。
例如,如果 url 是http://url.com/get.php?speed=并且 speedMbps = 23 那么我希望重定向 url 看起来像http://url.com/get.php?speed= 23
非常感谢您的帮助
解决方案
推荐阅读
- java - 为什么我没有打印时会打印
- javascript - 有没有办法在反应组件表上添加边框?
- javascript - $scope.myFunc 不是函数
- jquery - 具有固定标题和特定列数的可滚动(水平和垂直)HTML 表格(与 IE 11 兼容)
- c# - 使用 AutoMapper 更新拥有实体的属性不会将其设置为已修改
- algorithm - 根据给定的时间,估计算法可以处理的输入大小
- android - 如何检查或更新虚幻 apk api?
- php - 如何使多个电报机器人在一个 Laravel 实例上工作
- python - 由 HomeBrew 安装的 Anaconda “路径不可写或丢失。”
- c - 如何创建一个存储多个数组的指针?