Ajax简单理念 结尾有个人编写时候的小总结
- 什么是 AJAX ?
- Ajax(asynchronouse javascript and xml) AJAX = 异步 JavaScript 和 XML。
- 是7种技术的综合,它包含了七个技术(javascript xml xstl xhtml domxml http request css)ajax 是一个粘合剂。
- ajax是一个与服务器端语言无关的技术,即可以使用在(php/javaee/.net网站/asp)
- ajax可以给客户端返回三种格式数据(文本格式,xml,json格式)
- 无刷新数据交换技术有以下:flash,java,applet,框架,复燃么,ajax
- 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
- 传统的客户端和服务器响应方式缺点
- 数据是整体提交
- 整个页面有刷新
- 用户体验不好
- 占带宽
- 传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。
- AJAX优点
- 页面无刷新的动态数据交换
- 局部刷新页面【验证用户名唯一】
- 界面的美观【增强用户体验】
- 对数据库的操作
- 可以返回简单的文本格式,也可以返回XML文件格式,json数据格式。
- Ajax 的运行原理分析图:
- Ajax在什么地方用的多
- 动态加载数据,按需取得数据。【树形菜单、联动菜单.../省市联动】
- 改善用户体验。【输入内容前提示、带进度条文件上传...】
- 电子商务应用。 【购物车、邮件订阅...】
- 访问第三方服务。 【访问搜索服务、rss阅读器】
- 数据的布局刷新
个人经验(不喜勿喷,个人总结):但是Ajax会存在异步概率性出现类似异步和同时进行,个人在使用Ajax出现过低级错误就是代码中写了两个Ajax, 我写的ajax是获取数据的值用,但是需要进行传入参数才能拿到想要的值。
定义了公共变量 第一个Ajax根据公共变量查询返回对应值并重新赋给公共变量一个值,但是第二个Ajax返回数据是空,回头查看发现定义的变量没有发生改变由此看出是同步进行了。
js脚本举例
Example:
var i = 1;
function a(){
hwDas.get(
http://1.0.0//举例我需要取值的地址,
{},
{ Edition:i},//需要的参数传入
function (result) {
var data = result.data[0].datas; //获取数据
i=data[0].zd //获取值改变全局变量值 比如此时i = '3班'
}, function (msg) {
alert(msg)
})
}
function b(){
hwDas.get(
http://1.0.0//举例我需要取值的地址,
{}, { Edition:i}, //如或在后台跟代码会异步执行到这i = '3班'
function (result) {
var data = result.data[0].datas;
var name = data[0].name
var age = data[0].age
}, function (msg) {
alert(msg)
})
}
//以上由于同步执行会导致B获取的i值不对导致无法获取到想要的数据或传入的不对
应该为:
Example:(全局变量)
var i = 1;
function a(){
hwDas.get(
http://1.0.0//举例我需要取值的地址,
{},
{ Edition:i},//需要的参数传入
function (result) {
var data = result.data[0].datas; //获取数据
i=data[0].zd //获取值改变全局变量值 比如此时i = '3班'
b()//此时是在a成功后并i重新赋值在执行b,如果是局部变量需要传值在下面例子中
}, function (msg) {
alert(msg)
})
}
function b(){
hwDas.get(
http://1.0.0//举例我需要取值的地址,
{}, { Edition:i}, //
function (result) {
var data = result.data[0].datas;
var name = data[0].name
var age = data[0].age
}, function (msg) {
alert(msg)
})
}
//如果i 局部变量解决办法
Example:(全局变量)
var k = 1;
function a(){
hwDas.get(
http://1.0.0//举例我需要取值的地址,
{},
{ Edition:k},//需要的参数传入
function (result) {
var data = result.data[0].datas; //获取数据
var i=data[0].zd //获取值并定义局部变量i 比如此时i = '3班'
b(i)//此时是在a成功后并定义i并赋值在执行b并将参数传入
}, function (msg) {
alert(msg)
})
}
function b(i){
hwDas.get(
http://1.0.0//举例我需要取值的地址,
{}, { Edition:i}, //
function (result) {
var data = result.data[0].datas;
var name = data[0].name //得到的值
var age = data[0].age //得到的值
}, function (msg) {
alert(msg)
})
}