首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >浏览器不断崩溃,因为会有一个时间循环。

浏览器不断崩溃,因为会有一个时间循环。
EN

Stack Overflow用户
提问于 2020-03-11 01:34:49
回答 1查看 41关注 0票数 2

基本上,我正在编写一个代码,它从textarea获取第一行代码,然后将其发送到php代码并返回响应。然而,当我将数据放到浏览器停止工作时,这种情况就不会发生--这是我正在使用的代码

代码语言:javascript
复制
function getNewSocks() {
  socksList.splice(0, 1);
  $('#socks').val(socksList.join("\n"));
}
var socksList = $("#socks").val().split("\n");
while (socksList.length) {
  var getTheSocksLine = $.trim(socksList[0].replace(/\s+/g, ''));
  var getIP = $.trim(getTheSocksLine.split(":")[0]);
  var getPort = $.trim(getTheSocksLine.split(":")[1]);

  if (typeof getIP == "undefined" || typeof getPort == "undefined" || getIP == "" || getPort == "") {
    alert("typeof");
    socksDieResultDisplay(getIP + ":" + getPort);
    getNewSocks();
  }
  else if (getTheSocksLine.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,6}$/) == null) {
    alert("error");
    socksDieResultDisplay(getIP + ":" + getPort);
    getNewSocks();
  }

  else {
    $.ajax({
      url: "system/checkerPostHandler.php",
      method: "POST",
      data: "checkSocks=CheckSocksNowPlease&ip=" + getIP + "&port=" + getPort,
      success: function (getResponse) {
        alert("PHP Response=>" + getResponse + " jQuery Response=>" + getIP);
        if (socksList.length != 0) {
          getNewSocks();
        }

      }
    });
  }

}

我向上帝发誓,现在已经花了3-4个小时去找出问题所在!请帮帮我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-11 01:39:42

您可以引入一个计数器,并将其与socksList.length进行复制,如果计数器是<=,则循环将运行,否则将退出。

代码的问题是循环条件始终为真,并且始终运行。如果socksList.length条件不是socksList.length,则该条件将始终为真。

示例.

代码语言:javascript
复制
function getNewSocks() {
  socksList.splice(0, 1);
  $('#socks').val(socksList.join("\n"));
}
var socksList = $("#socks").val().split("\n");
let counter = 0;
while (counter <= socksList.length) {
  var getTheSocksLine = $.trim(socksList[counter].replace(/\s+/g, ''));
  var getIP = $.trim(getTheSocksLine.split(":")[0]);
  var getPort = $.trim(getTheSocksLine.split(":")[1]);

  if (typeof getIP == "undefined" || typeof getPort == "undefined" || getIP == "" || getPort == "") {
    alert("typeof");
    socksDieResultDisplay(getIP + ":" + getPort);
    getNewSocks();
  }
  else if (getTheSocksLine.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,6}$/) == null) {
    alert("error");
    socksDieResultDisplay(getIP + ":" + getPort);
    getNewSocks();
  }

  else {
    $.ajax({
      url: "system/checkerPostHandler.php",
      method: "POST",
      data: "checkSocks=CheckSocksNowPlease&ip=" + getIP + "&port=" + getPort,
      success: function (getResponse) {
        alert("PHP Response=>" + getResponse + " jQuery Response=>" + getIP);
        if (socksList.length != 0) {
          getNewSocks();
        }

      }
    });
  }
  counter++;
}

您也可以使用socksList.forEachfor of

for of 示例:

代码语言:javascript
复制
for (const socks of socksList) {
  var getTheSocksLine = $.trim(socksList[socks].replace(/\s+/g, ''));
  //..other code
}

forEach 示例:

代码语言:javascript
复制
socksList.forEach( socks => {
  var getTheSocksLine = $.trim(socksList[socks].replace(/\s+/g, ''));
  //..other code
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60628113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档