不依赖JQuery的入门Ajax代码
今天看了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代码的更多相关文章
- JQuery快速入门-Ajax
一.AJAX概述 概念:AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). 优点:通过在后台与服务器进行少量数据交换,AJAX ...
- jQuery 1.9 Ajax代码带注释
/* -----------ajax模块开始 -----------*/ var // Document location ajaxLocParts, ajaxLocation, ajax_nonce ...
- jQuery入门(4)jQuery中的Ajax应用
jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 jQuery入门(3)事件与事件对象 jQuery入门(4)jQuery中的Ajax()应 ...
- Ajax (Asynchronous javascript xml) 搜索框核心代码(JQuery) Ajax判断用户名存在核心代码 附:原生js的Ajax代码 其中有json的一句话解释
前端 <script type="text/javascript"> $(function(){ $("#tid").keyup(function( ...
- jQuery中使用Ajax获取JSON格式数据示例代码
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.JSONM文件中包含了关于“名称”和“值”的信息.有时候我们需要读取JSON格式的数据文件,在jQuery中 ...
- 从jquery里的$.ajax()到angularjs的$http
jquery中对ajax的使用做了很多封装,使得我们使用习惯了,反而并不大清楚在请求过程中的一些细节. 在第一次使用angularjs的$http时,后台一直接受不到前端请求的数据,于是小小研究了一下 ...
- 关于jquery插件 入门
关于 JavaScript & jQuery 的插件开发 最近在温故 JavaScript 的面向对象,于是乎再次翻开了<JavaScript高级程序设计>第3版,了解到其中常 ...
- jQuery 快速入门教程
内容目录 jQuery 入门 什么是jQuery 如何使用jQuery jQuery的运行原理 如何选择jQuery版本 ready() 准备就绪时执行代码 jQuery 核心:选取元素 使用jQue ...
- day 48 jQuery快速入门
jQuery快速入门 jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Ev ...
随机推荐
- centos中如何查看tomcat的版本
centos中如何查看tomcat的版本 如果使用的rpm安装的tomcat,则使用如下命令查看 rpm -q tomcat 如果不是使用rpm安装的tomcat ./catalina.sh vers ...
- Appium自动化测试-iOS
Appium的哲学 我们相信,对原生应用的自动化测试,应当不必要包含其他的SDK组件或者特别编译您的App,并且应当可以选择任何您喜欢的测试方法,框架和工具.基于这些出发点我们开发了Appium.现在 ...
- asp.net 4高级程序设计( 第4版)文摘
第一部分 核心概念 第1章 asp.net 简介 第2章 visual studio 第3章 Web窗体 3.2 web窗体处理阶段 页面框架初始化(page.init),用户代码初始化(page.l ...
- Access denied for user 'root'@'MiWiFi-Ryyy-srv' (using password: YES)
虽然是跟很多人一样的问题但是原因不同,其他很多文章说是授权问题,也确实是授权问题,但是,配置文件写的是连接localhost,而这里不知道什么原因切换了使用的用户,变成了默认访问MiWiFi-Ryyy ...
- Map类
Map类 方法 方法名 返回类型 说明 addLayer(layer, index?) layer 增加一个esri图层到map中,示例: var baseMapLayer = new ArcGIST ...
- 2-初步了解C#-类与对象
本篇博客对应视频讲解 回顾 我们在第一篇文章中讲了编程中最基本的内容,如输入输出.字符串处理.数字类型计算.分支及循环结构等.无论学习什么语言,这些内容都是相通的. 本篇博客主要演示列表(List)的 ...
- update sharepoint 2013 cu error
1. 安装过程合理: A. 可以同时在管理中心.两台前端.搜索服务器上安装重新发布的SP1补丁包(所提供的链接) B. 等待所有SP1补丁包安装完成,依次在管理中心.两台前端.搜索服务器上运行配置向导 ...
- Android 透明状态栏
在 android 4 系统中可以设置透明状态栏. 但在 android 5.0 以上遇到问题.但问题是可以解决的,需要正确的设置 theme. 但是需要注意一点,5以上可以修改 status bar ...
- kolla-ansible 重新部署 ceph-mon 组件
1.备份数据 [root@controller ~]# mv /var/lib/docker/volumes/ceph_mon /var/lib/docker/volumes/ceph_backup/ ...
- Gogland配置- 去掉Go源代码中的参数提示
Gogland处于好意,在Go源代码中对每个参数提示类型,这或许方便大家处理源代码,但是我觉得对于正常阅读源代码反而造成一种负担,我决定去掉这个功能! Gogland默认配置状态,有参数提示: 下面是 ...