为什么我的网络应用程序在多个 GET 请求后崩溃?
Why is my web app crashing after multiple GET requests?
我有一个 运行 在 Python Bottle 服务器上的网页。我有一块 JQuery 每秒调用一次 GET 请求,这样我就可以刷新页面的一部分。它可以正常工作大约 8 小时..但是当我 运行 过夜时,浏览器崩溃了。
这是我的 GET 请求(实际上是一个 .load() 函数,因此我可以只刷新页面的一部分):
$('#hiddenDataDiv').load(document.URL + " #hiddenDataDiv", function(result) {
if (numberOfDivs > 0){
for (i = 0; i < numberOfDivs; i++) {
radioResult[i] = $('#data'+i).text();
}}
});
它每秒调用一次,并向我的 Python Bottle 服务器发送一个 GET 请求,请求由我的 Python 脚本生成的新数据。
我是服务器端的新手,我是不是造成了某种内存泄漏?缓存问题?有没有更好的办法让我的页面长时间刷新?
另外,我可以在我的 Google Chrome Inspector 中寻找可以给我线索的东西吗?
编辑:完整功能代码:
function pollInputs(){
$('#hiddenDataDiv').load(document.URL + " #hiddenDataDiv", function(result) {
if (numberOfDivs > 0){
for (i = 0; i < numberOfDivs; i++) {
radioResult[i] = $('#data'+i).text();
}}
});
if (radioResult[0] != undefined){
if (numberOfDivs > 0){
for (i = 0; i < numberOfDivs; i++) {
document.getElementById("input"+i).innerHTML = radioResult[i];
}}
}
}
在处理完上一个请求之前不要触发下一个请求,以防止大量积压。
function pollInputs(){
$('#hiddenDataDiv').load(document.URL + " #hiddenDataDiv", function(result) {
if (numberOfDivs > 0){
for (i = 0; i < numberOfDivs; i++) {
radioResult[i] = $('#data'+i).text();
}
}
setTimeout('pollInputs()', 1000);
});
if (radioResult[0] != undefined){
if (numberOfDivs > 0){
for (i = 0; i < numberOfDivs; i++) {
document.getElementById("input"+i).innerHTML = radioResult[i];
}
}
}
}
我有一个 运行 在 Python Bottle 服务器上的网页。我有一块 JQuery 每秒调用一次 GET 请求,这样我就可以刷新页面的一部分。它可以正常工作大约 8 小时..但是当我 运行 过夜时,浏览器崩溃了。
这是我的 GET 请求(实际上是一个 .load() 函数,因此我可以只刷新页面的一部分):
$('#hiddenDataDiv').load(document.URL + " #hiddenDataDiv", function(result) {
if (numberOfDivs > 0){
for (i = 0; i < numberOfDivs; i++) {
radioResult[i] = $('#data'+i).text();
}}
});
它每秒调用一次,并向我的 Python Bottle 服务器发送一个 GET 请求,请求由我的 Python 脚本生成的新数据。
我是服务器端的新手,我是不是造成了某种内存泄漏?缓存问题?有没有更好的办法让我的页面长时间刷新?
另外,我可以在我的 Google Chrome Inspector 中寻找可以给我线索的东西吗?
编辑:完整功能代码:
function pollInputs(){
$('#hiddenDataDiv').load(document.URL + " #hiddenDataDiv", function(result) {
if (numberOfDivs > 0){
for (i = 0; i < numberOfDivs; i++) {
radioResult[i] = $('#data'+i).text();
}}
});
if (radioResult[0] != undefined){
if (numberOfDivs > 0){
for (i = 0; i < numberOfDivs; i++) {
document.getElementById("input"+i).innerHTML = radioResult[i];
}}
}
}
在处理完上一个请求之前不要触发下一个请求,以防止大量积压。
function pollInputs(){
$('#hiddenDataDiv').load(document.URL + " #hiddenDataDiv", function(result) {
if (numberOfDivs > 0){
for (i = 0; i < numberOfDivs; i++) {
radioResult[i] = $('#data'+i).text();
}
}
setTimeout('pollInputs()', 1000);
});
if (radioResult[0] != undefined){
if (numberOfDivs > 0){
for (i = 0; i < numberOfDivs; i++) {
document.getElementById("input"+i).innerHTML = radioResult[i];
}
}
}
}