Ajax太慢,无法从服务器端响应(shell脚本)

Ajax too slow to response from server side( shell script)

本文关键字:响应 shell 脚本 服务器端 太慢 Ajax      更新时间:2023-09-26

我不确定这是我的服务器端问题或javascript/jQuery问题......我的shell脚本做这些事情(顺序):

  1. 使用'GET'从用户

  2. 获取参数
  3. 更改服务器日期的日期、时间等参数(使用date -s)、Linux服务器、NTP配置NTP服务器

  4. 重命名文件(使用mv filename1 filename2)

  5. 将NTP信息保存在配置文件中

  6. killall test.sh

  7. run test.sh

  8. 客户端返回消息

现在我评论4和5的任务,但效率仍然太慢。我尝试过javascript和jQuery:javascript:

var dthttp;
if (window.XMLHttpRequest) {
      dthttp=new XMLHttpRequest();
}else{
      dthttp=new ActiveXObject("Microsoft.XMLHTTP");
}
try{
      dthttp.open("GET", 'test.ncgi', true);
      dthttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      dthttp.onreadystatechange = onReceivData;
      dthttp.send(some parameter);
}catch(e){
      dthttp.abort();
}
function onReceivData(){
      if(dthttp.readyState==4){
             if(dthttp.status==200){
                   // do something if success
             }
      }
}

响应很快,但我不知道为什么它不运行脚本......但是脚本中的文本是正确的......

所以我尝试了jQuery:
'$.ajax({
      url: "test.ncgi",
      type: "GET",
      async: false,
      data: {
            // some parameters
      },
      dataType: "json",
      error: function(xhr){
            // if error occured
      },
      success: function(data){
            // if successfully
      }
});

当我使用jQuery时,它确实运行脚本,但它阻塞了所有的网页,所以在脚本返回响应之前你什么也做不了。

我更喜欢改变我的javascript端,因为效率是好的,我只是不知道为什么脚本不运行.....

任何想法都很感激!

更新:

感谢Mr.Manhattan的建议,jQuery可以运行并且不会阻塞网页

但是脚本的响应效率仍然很低......

和shell脚本:

if [ -f "_test.sh" ]; then
mv _test.sh test.sh
fi
echo -e "$NTP" > configfile
#killall test.sh &
#run test.sh &
varDATE=`date -s "$Date$Hour$Minute.$Second"`
sync
varDATE=`date`
cat << EOF
    {
        "MSG": "Server date/time is set as $varDATE"
    }
EOF

好的,谢谢大家的帮助,我发现问题是我的shell脚本,

它处理事情的时间太长(test.sh和get Parameter部分)。

我检查一下那部分,希望能解决问题。