我刚刚开始为我的聊天应用程序开发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请求成功返回时应该执行的回调函数。
在这样做的过程中,该方法从您那里抽象出内部实现。例如,它为您处理以下内容:
- 浏览器嗅探/功能检测
- 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的使用更容易,但有些人觉得它"太过分了":(