zoukankan      html  css  js  c++  java
  • ajax常见的面试题

    1. 什么是ajax?

      AJAX = Asynchronous (异步) JavaScript and XML,是一种用于创建快速动态网页的技术。

    2. ajax接受到的数据类型是什么?

      2.1 string

      2.2 JSON字符串

      2.3 JSON对象

    3. ajax的适用场景有哪些?优点和确定分别是什么?

      适用场景:表单的失焦验证,表单的自动补全功能,页面只需要局部刷新的时候。

      优点:

        1. 页面局部刷新。

        2. 使用异步方式与服务器通信,具有更加迅速的响应能力。

        3. AJAX可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,AJAX的原则是“按需取数据”,可以最大程度的减少冗余请求和响应对服务器造成的负担,提升站点性能。

        4. 基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。

      缺点:

        1. AJAX干掉了Back和History功能,即对浏览器机制的破坏。

        2. 安全问题 AJAX暴露了与服务器交互的细节。

        3. 对搜索引擎支持较弱。

        4. AJAX不能很好支持移动设备。

        5. 不易于调试。

    4. 创建ajax的步骤?

    <script>
    		// 1.创建ajax对象-xmlhttprequest对象
    		// XMLHttpRequest 对象
    
    		// variable=new XMLHttpRequest();    新版本的浏览器
    		// variable=new ActiveXObject("Microsoft.XMLHTTP");    //老版本的IE  ,IE5,IE6
    		var xhr;
    		if(window.XMLHttpRequest){    //常规,如果有,直接使用
    			xhr = new XMLHttpRequest();
    		}else{   //如果没有,老版本IE
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    		console.log(xhr)
    		console.log("状态码:" + xhr.readyState);
    		console.log('响应码:' + xhr.status);
    		console.log('响应文本:' + xhr.responseText);
    		console.log('步骤一完成')
    
    
    		// 2.通过监听ajax的状态的改变来监听
    		xhr.onreadystatechange = function(){
    			console.log('xhr的状态码发生了改变');
    			console.log("状态码:" + xhr.readyState);
    			console.log('响应码:' + xhr.status);
    			console.log('响应文本:' + xhr.responseText);
    			console.log('
    ');
    		}
    		console.log('步骤二完成')
    
    		// 3.创建请求的消息,连接服务器      状态码0=>1
    		xhr.open('GET','07.php',true);    //最后一个参数是bool,表示同步||异步,true异步
    		console.log('步骤三完成')
    
    		// 4.发送
    		xhr.send(null);   //如果是post请求,就放post参数,如果是get请求,发送null就行了 
    </script>

    5. 同步和异步的区别?

      同步会阻塞代码的运行。

        代表:循环,script加载src

      异步不会阻塞代码的运行。

        代表:定时器,link加载css,img加载src

    6. GET和POST的区别?

      GET:传递的参数在地址栏中,发送的数量有限,一般在2000个字符左右。

      POST:传递的参数在请求体中,理论上,如果网速良好的情况下,对发送的参数是没有限制的。

    7. ajax请求是GET和POST的区别?

      get一般用来进行查询操作,url地址有长度限制,请求的参数都暴露在url地址当中,如果传递中文参数,需要自己进行编码操作,安全性较低。

      post请求方式主要用来提交数据,没有数据长度的限制,提交的数据内容存在于http请求体中,数据不会暴漏在url地址中。

    8. http常见的状态码有那些?分别代表是什么意思?

      200 - 请求成功

      301 - 资源(网页等)被永久转移到其它URL

      404 - 请求的资源(网页等)不存在

      500 - 内部服务器错误

    9. ajax和JSON对比,两者的优缺点?

      ajax:优点:可以使得页面不重载全部内容的情况下加载局部内容,降低数据传输量,避免用户不断刷新或者跳转页面,提高用户体验。

           缺点:对搜索引擎不友好;要实现ajax下的前后退功能成本较大;可能造成请求数的增加跨域问题限制

      JSON:优点:轻量级、易于人的阅读和编写,便于机器(JavaScript)解析,支持复合数据类型(数组、对象、字符串、数字)

    10. 解释jsonp的原理,以及为什么不是真正的ajax

      Jsonp并不是一种数据格式9,而json是一种数据格式,jsonp是用来解决跨域获取数据的一种解决方案,具体是通过动态创建script标签,然后通过标签的src属性获取js文件中的js脚本,该脚本的内容是一个函数调用,参数就是服务器返回的数据,为了处理这些返回的数据,需要事先在页面定义好回调函数,本质上使用的并不是ajax技术。

  • 相关阅读:
    JS方法集
    IOC 在Mvc中的使用
    ExtJS4 便捷三层开发模式
    Net Framework中的提供的常用委托类型
    作用域、作用域链理解
    Swing中弹出对话框的几种方式(转)
    程序员的价值观——经验是无价之宝(转)
    透过浏览器看HTTP缓存(转)
    模态窗口其实就是在当前窗口调用系统的消息循环,响应用户的操作,将相关的消息发送到对应的窗口(转)
    开发小结(转)
  • 原文地址:https://www.cnblogs.com/mercy-up/p/10439667.html
Copyright © 2011-2022 走看看