面试加强:(AJAX)

AJAX:

(异步交互:客户端发送请求到服务端的时候,无论服务端是否反应,用户都可以进行操作)

1:请求案例:

		$.ajax({
			url:"/WEB22/ajaxServlet2",
			async:true,//是否异步
			type:"POST",//请求方式
			data:{"name":"lucy","age":18},//请求数据
			success:function(data){//请求成功
				alert(data.name);
			},
			error:function(){//请求失败
				alert("请求失败");
			},//请求数据类型
			dataType:"json"
		});
	}
   $.ajax({
            async: false,
            type: "POST",
            url: "/Myself/dbreturn",
            data: {
                F_FIELNAME: F_FIELNAME,
                F_USERID: F_USERID,
                DBRETURN: DBRETURN,
                url:url
            },
            dataType: "json",

            success: function (data) {
                alert("还原成功!"),
                    RefreshData();
            },
            error: function () {
                alert("还原失败")
            }
        })
        $.ajax({
            type: "POST",
            url: "/Myself/adddbreturn",
            data: {
                F_USERID: F_USERID,
                F_FIELNAME: F_FIELNAME,
                F_DDBACKTIME: F_DDBACKTIME,
                F_REMARK: F_REMARK

            },
            dataType: "json",
            success: function (data) {
                // alert("添加还原记录成功")
            },
            error: function () {
                alert("添加还原记录失败")
            }
        })

AJAX关闭异步,一个按钮按顺序执行2个AJAX请求

2:运行原理:

页面发起请求,会把请求发送给浏览器内核中的AJAX引擎,AJAX引擎会提交到服务器端,这段时间客户端可以进行任何操作,直到服务器端将数据返回给ajax引擎,会触发你设置的事件,执行你写的js代码实现页面功能。

3:乱码问题:

  • POST:不用管,已经在内部解决了乱码

  • GET:先编码再解码

  • 面试准备:

  • 1:同步&&异步

  • 异步传输是面向字符的传输,它的单位是字符。

  • (告诉浏览器去做,告诉是一瞬间的事情,然后可以继续执行下一步,等到结果返回,浏览器会通知js执行相应的回调)

  • 同步传输是面向比特的传输,它的单位是桢。

  • (必须操作完才会执行下一步,等待期间不可执行任何接下来的js代码)

  • 2:包含技术:

  • 使用CSS和XHTML来表示。

  • 使用DOM模型来交互和动态显示。

  • 使用XMLHttpRequest和服务器进行异步通信(重点)。

  • 使用javascript来绑定和调用。

  • 除了XmlHttpRequest对象以外,其它所有的技术都是基于web标准并且已经得到了广泛使用的。

3:原理

通过XMLHTTPRequest(ajax的核心机制)对象来向服务器发送异步请求,从服务器获得数据,然后用js操作DOM来更新页面。

相当于在用户和服务器之间加了一个中间层,是用户操作和服务器响应异步化,并不是所有请求都提交给服务器,想一些数据验证和数据处理都交给AJAX引擎自己来做,只有确定需要从服务器读取新数据时再由AJAX引擎代为向服务器提交请求。

4:优点:

1:无刷新更新数据

不刷新整个页面的前提下与服务器端交互数据,并且避免了再网络上发送那些没有改变的信息,减少等待数据,提高用户提亚

2:异步方式与服务器通信

不打断用户操作

3:前端和后端负载均衡

把服务器端负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器的负担。AJAX的原则是“按需取数据”,可以最大程度的减少多余请求和响应服务器造成的负担,提高性能。

4:基于标准化,无需下载浏览器插件或者小程序

5:界面与应用分离,减少对页面的修改造成的WEB应用错误,提高效率。

5:缺点:

1:无法回退

AJAX无法实现点击后退按钮能够取消他们的前一次操作,因为动态更新,对浏览器机制进行了破坏,无法回退。

2:安全问题

ajax难以避免一些安全漏洞,比如SQL注入攻击,跨站点攻击这些

3:搜索引擎支持较弱

ajax会增大网络数据的流量,从而降低系统的性能

4:违背URL和资源定位的初衷

才有ajax的技术,同一个URL地址下看到的内容可能是不一样的

5:不能很好支持移动设备

在手机的浏览器上打开采用ajax技术的网站时,目前是不支持的

6:多余代码太多

层层包含js文件是ajax 的通病,加上以往的服务端代码都放到客户端,容易出错

猜你喜欢

转载自blog.csdn.net/qq_31051117/article/details/88072546
今日推荐