今天看了head first ajax这本书里ajax的实例,讲的很好,这本书觉着很不错,推荐下。

Ajax (Asynchronous Javascript and XML)即异步Javascript和XML,但不定非要使用js和xml才能称为Ajax,简单说,Ajax是设计和构建web页面的一种方法,使之像桌面应用一样具有响应性和交互性,而其中的异步就是指浏览器像服务器发出请求而无需用户等待响应。

创建一个Ajax的简单代码 要分以下几步走(本实例是使用MVC4 +VS2013 创建的):

1、创建View页面,即html页面

2、初始化页面

3、创建请求对象

4、服务端响应请求代码

5、显示到界面

下面开始 逐一介绍,使用vs创建mvc4空项目。

1、创建view页面

在视图文件夹添加Index.cshtml,输入如下html代码,div是用来显示新闻列表的,button按钮用来触发Ajax事件

        <div id="newsList">
</div>
<input type="button" value="获取新闻" id="btnNews"/>
2、 初始化页面
在页面加载完后,给button绑定调用Ajax事件
    window.onload = initPage;
function initPage() {
var btn = document.getElementById("btnNews");
btn.onclick = function () {
getNews();
};
}
3、创建请求对象
针对各种浏览器,我们建立一个初始化XMLHttpRequest请求对象的方法。
    var request;
function createRequest() {
try {
request = new XMLHttpRequest();//这里创建一个请求对象 但不适用于所有浏览器
}
catch (msXml) {
try {
request = new ActiveXObject("MSxml2:XMLHTTP");//第一种方法失败,尝试是不是IE6浏览器
}
catch (ms) {
try {
request = new ActiveXObject("Microsoft:XMLHTTP");//又失败了,再来尝试是不是IE5
}
catch (failed) {
request = null;
}
}
}
return request;
}

创建完请求后,我们开始向服务端执行请求

    function getNews() {
var request = createRequest();
var newsCount = 0;
if (document.getElementsByTagName("li") != null) {
newsCount = document.getElementsByTagName("li").length;
}
var url = "default/GetNews?newsid=" + newsCount;
request.open("GET", url, true);
request.onreadystatechange = displayNews; //回调函数,每次状态改变时 浏览器都会运行回调函数。
request.send(null); }

4、服务端响应请求代码接着我们要在服务端写代码进行响应请求,添加控制器DefaultController,添加GetNews方法,返回类型为string

       public string GetNews(int newsid)
{
string responseText = @"<ul>";
for (int i = ; i <= ; i++)
{
responseText += string.Format("<li>这是第{0}条新闻</li>", i + newsid);
}
responseText += "</ul>";
return responseText;
}

5、显示到界面XMLHttpRequest对象有一个onreadystatechange 属性,该属性用来告知浏览器执行回调函数,服务器在接受到请求对象后,会更新readyState(表示请求对象当前状态)属性,每次这个属性发生变化时,浏览器就会调用onreadystatechange这个属性指定的函数。

    function displayNews() {
if (request.readyState == 4) ////服务器接收到请求时 为1 ,在处理请求时值为2或3,处理完请求后 修改值为4
{
if (request.status == 200) //http状态码 200代表成功,404代表所请求的页面不存在或链接错误。
{
var divNews = document.getElementById("newsList");
divNews.innerHTML += request.responseText;
}
}
}

效果如下:

源码下载

喜欢就推荐下吧,您的支持是我的动力!

不依赖JQuery的入门Ajax代码的更多相关文章

  1. JQuery快速入门-Ajax

    一.AJAX概述 概念:AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). 优点:通过在后台与服务器进行少量数据交换,AJAX ...

  2. jQuery 1.9 Ajax代码带注释

    /* -----------ajax模块开始 -----------*/ var // Document location ajaxLocParts, ajaxLocation, ajax_nonce ...

  3. jQuery入门(4)jQuery中的Ajax应用

    jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 jQuery入门(3)事件与事件对象 jQuery入门(4)jQuery中的Ajax()应 ...

  4. Ajax (Asynchronous javascript xml) 搜索框核心代码(JQuery) Ajax判断用户名存在核心代码 附:原生js的Ajax代码 其中有json的一句话解释

    前端 <script type="text/javascript"> $(function(){ $("#tid").keyup(function( ...

  5. jQuery中使用Ajax获取JSON格式数据示例代码

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.JSONM文件中包含了关于“名称”和“值”的信息.有时候我们需要读取JSON格式的数据文件,在jQuery中 ...

  6. 从jquery里的$.ajax()到angularjs的$http

    jquery中对ajax的使用做了很多封装,使得我们使用习惯了,反而并不大清楚在请求过程中的一些细节. 在第一次使用angularjs的$http时,后台一直接受不到前端请求的数据,于是小小研究了一下 ...

  7. 关于jquery插件 入门

    关于 JavaScript & jQuery 的插件开发   最近在温故 JavaScript 的面向对象,于是乎再次翻开了<JavaScript高级程序设计>第3版,了解到其中常 ...

  8. jQuery 快速入门教程

    内容目录 jQuery 入门 什么是jQuery 如何使用jQuery jQuery的运行原理 如何选择jQuery版本 ready() 准备就绪时执行代码 jQuery 核心:选取元素 使用jQue ...

  9. day 48 jQuery快速入门

    jQuery快速入门   jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Ev ...

随机推荐

  1. WebApi参数传递总结(转)

    出处:http://www.cnblogs.com/Juvy/p/3903974.html 在WebAPI中,请求主体(HttpContent)只能被读取一次,不被缓存,只能向前读取的流. 举例子说明 ...

  2. unittest单元测试框架之coverage代码覆盖率统计

    什么是coveage? coverage是一个检测单元测试覆盖率的工具,即检查你的测试用例是否覆盖到了所有的代码.当你通过pip install coverage成功安装完coverage后,就会在p ...

  3. java并发编程工具类辅助类:CountDownLatch、CyclicBarrier和 Semaphore

    在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法. 以下 ...

  4. Oracle EBS Add Responsibility to User by the Responsibility reference of Other User.

    Oracle EBS 11i Add Responsibility to User by the Responsibility reference of Other User. Warning: R1 ...

  5. [Erlang33]使用recon从网页查看Erlang运行状态

    0.需求分析 Erlang最好的卖点之一就是提供了一个非常强大的shell来查看Node运行时的各种状态,可以进行各种各样的内部查看,在运行时调试和分析,热更新代码.   但是总有一些在生产环境下要慎 ...

  6. aspnetPage分页控件

    项目里面有一个分页,刚好知道了aspnetPage分页控件,现在就把实现步骤和代码贴出来分享一下,如有错误欢迎指正. http://www.webdiyer.com  该控件原网址.里面文档 1.首先 ...

  7. 对Integer类中的私有IntegerCache缓存类的一点记录

    对Integer类中的私有IntegerCache缓存类的一点记录 // Integer类有内部缓存,存贮着-128 到 127. // 所以,每个使用这些数字的变量都指向同一个缓存数据 // 因此可 ...

  8. python网络编程--线程(锁,GIL锁,守护线程)

    1.线程 1.进程与线程 进程有很多优点,它提供了多道编程,让我们感觉我们每个人都拥有自己的CPU和其他资源,可以提高计算机的利用率.很多人就不理解了,既然进程这么优秀,为什么还要线程呢?其实,仔细观 ...

  9. PL/SQL控制语句(二、循环控制语句)

    循环允许重复执行代码直到循环条件匹配,PL/SQL中循环主要有LOOP语句和EXIT语句两种,这两种语句相辅相成,一起组成了PL/SQL的循环结构.在PL/SQL中,循环分为四大类,本文将会讲解其中的 ...

  10. Aircrack-ng无线破解总结

    过年回来家,奈何没网,实属无奈,只好看破解教程,看能否破出来.于是总结如下 测试环境在linux平台下,我用的是ubuntu环境.ubuntu安装可以直接用sudo apt-get install a ...