javascript - 服务器端 Ajax 响应速度太慢(shell 脚本)

标签 javascript jquery ajax shell

我不确定这是我的服务器端问题还是 javascript/jQuery 问题...... 我的 shell 脚本执行这些操作(按顺序):

  1. 使用“GET”从用户处获取参数

  2. 用于更改服务器日期(使用date -s)、基于Linux的服务器和NTP的日期和时间等参数,用于NTP服务器配置

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

  4. 将 NTP 信息存储在配置文件中

  5. killall test.sh

  6. 运行test.sh

  7. 客户端返回消息

现在我评论了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端,因为效率很好,我只是不知道为什么脚本不运行......

任何想法表示赞赏!

更新:

感谢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和获取参数部分)。

我会检查该部分,希望它能解决问题。

关于javascript - 服务器端 Ajax 响应速度太慢(shell 脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24506684/

相关文章:

javascript - 通过 Instagram 回复进行分页

javascript - 在字符串中特定数量的数字后插入空格

php - 以最简单、最整洁的方式一页可编辑列表

jquery - 如何在 knockout 中显示带有悬停文本的警告图标,以警告文本框中输入的重复记录

javascript - success 函数内的 loadPlayer 函数未定义

javascript - PHP警告: stristr(): Empty needle in line

javascript - 如何使用 AJAX 将 JavaScript 数组发送到 PHP?

JavaScript:反转页面所有元素的颜色

javascript - mootools: $ 未定义

javascript - 循环遍历对象中的嵌套数组