不同类型的ajax实现


Different types of ajax implementation

我刚刚开始为我的聊天应用程序开发ajax,我正在php中制作这个应用程序。在网上学习ajax时,我在实现ajax的不同网站上通过两种方式进行了研究。这两种ajax实现之间有什么区别?任何帮助都将不胜感激:(

首次实施-

    <script type"text/javascript">
        $(document).ready(function() {
        var dept = '<?php echo $deptId; ?>';
        var interval = setInterval(function() {
            $.ajax({
                url: 'scripts/php/Chat.php',
                data: {dept:dept},
                success: function(data) {
                $('#messages').html(data);
            }
        });
        }, 1000);
    });
    </script>

第二次实施-

<script language="javascript" type="text/javascript">
function ajaxFunction(){
var ajaxRequest;  // The variable that makes Ajax possible!
try{
  // Opera 8.0+, Firefox, Safari
  ajaxRequest = new XMLHttpRequest();
}catch (e){
  // Internet Explorer Browsers
  try{
     ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
  }catch (e) {
     try{
        ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
     }catch (e){
        // Something went wrong
        alert("Your browser broke!");
        return false;
     }
  }
 }
// Create a function that will receive data
// sent from the server and will update
// div section in the same page.
ajaxRequest.onreadystatechange = function(){
  if(ajaxRequest.readyState == 4){
      var ajaxDisplay = document.getElementById('ajaxDiv');
      ajaxDisplay.innerHTML = ajaxRequest.responseText;
  }
}
// Now get the value from user and pass it to
// server script.
var age = document.getElementById('age').value;
var wpm = document.getElementById('wpm').value;
var sex = document.getElementById('sex').value;
var queryString = "?age=" + age ;
queryString +=  "&wpm=" + wpm + "&sex=" + sex;
ajaxRequest.open("GET", "ajax-example.php" + queryString, true);
ajaxRequest.send(null); 
}

就功能而言,可以说它们之间没有区别。

也就是说,它们之间的第一个"区别"是,第一种方法是使用JQuery,因此要使用它,您需要在项目或需要ajax功能的页面中包含JQueryJavascript库。然而,第二种方法使用"普通ole Javascript"。

同样,第一个(JQuery(方法为您处理了许多"脏"的细节,为您提供了一个($.ajax)接口,只需要传入一些参数:

url:您希望调用的url

data:要传递到URL 的数据(GET或POST(

success:ajax请求成功返回时应该执行的回调函数。

在这样做的过程中,该方法从您那里抽象出内部实现。例如,它为您处理以下内容:

  1. 浏览器嗅探/功能检测
  2. readyStateChange(事件(检查

以及其他一些平凡的细节。

此外,使用第二种方法,如果您"遵守"$.ajax调用的接口规范,您可以放心,您的代码将主要在大多数场景中工作(如果不是全部的话(。然而,使用第二种方法,您需要进行大量的测试和检查,以确保您的代码能够在所有浏览器和平台类型中工作。

您的第一个代码使用jQuery。JQuery是一个丰富的js库,可以帮助您快速编码。看见http://api.jquery.com/(在您的特殊情况下:http://api.jquery.com/jQuery.ajax/

您的第二个代码只是javascript,没有其他库的任何帮助。它使用允许ajax调用的XMLHttpRequest。看见https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

jQuery的使用更容易,但有些人觉得它"太过分了":(