jquery 中的 .ajaxStart() 是否适用于 xmlHttpRequest 发送的请求?

Does .ajaxStart() in jquery works for requests sent by xmlHttpRequest

本文关键字:请求 xmlHttpRequest 适用于 ajaxStart 中的 是否 jquery      更新时间:2023-09-26

在我的javascript代码中,我有一个使用xmlhttpRequest()发送许多请求的函数。

现在我想在执行函数时的等待时间内显示一个加载微调器。(假设此函数是时间成本)

因此,如果我使用 $(document).ajaxStart() 来设置微调器的触发,可以吗?我的困惑是,我不知道$(document).ajaxStart()中的设置是否适用于内置XmlHttpRequest发送的ajax调用。

换句话说,以下代码应该有效吗?

var $loading = $('#loadingDiv').hide();
$(document)
  .ajaxStart(function () {
    $loading.show();
  })
  .ajaxStop(function () {
    $loading.hide();
  });
var xmlhttp =new XMLHttpRequest();
xmlhttp.onreadystatechange=function() { 
  if (xmlhttp.readyState==4 && xmlhttp.status==200) {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
  }}
xmlhttp.open("GET","ajax_info.txt",false);
xmlhttp.send();

如果我不想使用 jquery,有没有设置微调器的好方法?

它不起作用,因为 jQuery 仅使用其.ajax方法调用这些函数。

你可以对所有的AJAX调用使用jQuery方法,因为它们更容易使用(至少在我看来)。