【问题标题】:why ajax modal takes too much time为什么ajax modal需要太多时间
【发布时间】:2018-02-26 05:50:31
【问题描述】:

你好 stackoverflow 用户,

我有一个jquery来打开一个modal,代码如下

$(".openVarifiedModal").click(function(){

    var otpFor = $(this).data("value");
    var formdata = $(this).data("fieldvalue");

    $.ajax({
      type:'GET',
      url:'ajax/ajax_send_otp.php',
      data:{
        otpFor:otpFor,
        dataw:formdata
      },
      success: function(data){
         alert(data);
      }                
  });
});

PHP 页面是

include("../include/database.php");

if($_REQUEST['otpFor'] == "cmobile" || $_REQUEST['otpFor'] == "cmobile2"){
    $cmobile = $_POST['dataw'];;
    $cemail = "";
}else{
    $cmobile = "";
    $cemail = $_REQUEST['dataw'];
}

$otp_type = 3;
$todate = date('Y-m-d');
$otp = "451".rand(1,9);

// $result = $conn->query("INSERT INTO `user_otp`(`date`,`cmobile`,`email`,`otp`,`otp_type`) VALUES ('$todate','$cmobile','$cemail','$otp','otp_type')");
// QUery Takes Only 0.0580 To execute.

if($result){
    echo "OK";
}else{
    echo "NOT OK";
}

成功后模态插入后打开模态需要 3.0 秒。我还尝试插入第二个模式,它将立即打开。

但这里的扭曲是当我删除 include('database.php') 时它会立即打开。而我的数据库 php 没有任何期望数据库连接

这是点击后的网络标签 Firefox I have Lots Of Jqyery Code in My Page(e.g. 500+ Lines Functions)

【问题讨论】:

  • 你在使用 2 个数据库连接吗?
  • 不,只有一个数据库,但我使用两种方法,一种是 MySQL,另一种是 MySQLii
  • 你为什么要这样做?只使用 mysqli
  • 因为在我的应用程序的某些模块中我使用 mysqli
  • 只使用比mysql更好的mysqli。不需要同时使用

标签: php jquery ajax


【解决方案1】:

在完成 ajax 后以毫秒为单位获得响应以显示弹出窗口。有你上面的结构 screenshot

【讨论】:

  • 我也知道。但问题是为什么我要花 2.5 - 3 秒来打开模态..
  • ajax 完成后?
  • 在弹出窗口中追加数据可能需要一些时间。
  • 我不附加任何东西
【解决方案2】:

ajax php 文件没有提供数据。因为您没有在 jquery 脚本中选择正确的对象。 评论或解释你的目标:

var otpFor = $(this).data("value");
var formdata = $(this).data("fieldvalue");

【讨论】:

  • var mydata = $("#hidden_otp_number").val();//GETS OTP NUMBER var otpFor = $("#hidden_otp_for").val();//GETS OTP IS FOR means (mobile or email)
  • 如何填充这些隐藏元素的值?
  • 使用php方法
【解决方案3】:

在 firefox 中,使用 firebug (F12) 和 Network 选项卡来监控与服务器的每个事务的持续时间。 也许是因为其他一些资源......
firebug Netwrokr 选项卡的屏幕截图有助于回答比这更好。
更新...
也许是因为你的 ajax 的 GET 类型。您在 php 部分调用 POST 方法,但在 ajax 中使用 GET !
更新...
请将您的 php 代码发送到本地进行测试...

【讨论】:

  • 问题已更新...!
  • 将ajax方法改为POST
  • 首先我尝试了 post 方法。那没有用。所以我使用了get方法:-(
  • 使用 mysqli 并再次查看 firebug 的网络选项卡。也许它会在交易后显示错误。你也可以使用 php 调试日志。
  • 在这里检查整个代码....eval.in/962863。包括 PHP + HTML + AJX 请求
猜你喜欢
  • 2015-12-16
  • 2020-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多