首页 » 网站推广 » phpcallbackjson技巧_Ajax 收集相关的面试题1

phpcallbackjson技巧_Ajax 收集相关的面试题1

访客 2024-11-02 0

扫一扫用手机浏览

文章目录 [+]

Ajax 的事理 通过 XmlHTTPRequest 工具来向做事器发异步要求,从做事器得到数据,然后用 javascript 来操作 DOM 而更新页面。
这个中最关键的一步便是从做事器得到要求数据。
XMLHTTPRequest 是 Ajax 的核心机制,它是在 IE5 中首先引入的,是一种支持异步要求的技能。
大略的说,也便是 javascript 可以及时向做事器提出要乞降处理相应,而不壅塞用户。
达到 无刷新的效果。

Ajax 的优点

phpcallbackjson技巧_Ajax 收集相关的面试题1

1、最大的一点是页面无刷新,用户的体验非常好。
2、利用异步办法与做事器通信,具有更加迅速的相应能力。
3、可以把以前一些做事器包袱的事情转嫁到客户端,利用客户端闲置的能力来处理, 减轻做事器和带宽的包袱,节约空间和宽带租用本钱。
并且减轻做事器的包袱,Ajax 的原则是“按需取数据”,可以最大程度的减少冗余要求,和相应对做事器造成的包袱。
4、基于标准化的并被广泛支持的技能,不须要下载插件或者小程序。

Ajax 的缺陷

phpcallbackjson技巧_Ajax 收集相关的面试题1
(图片来自网络侵删)
Ajax 不支持浏览器 back 按钮。
安全问题 Ajax 暴露了与做事器交互的细节。
对搜索引擎的支持比较弱。
毁坏了程序的非常机制。
不随意马虎调试。
4、常见的 HTTP状态码以及代表的意义(必会)

5 种常见的 HTTP 状态码以及代表的意义:

200( OK):要求已成功,要求所希望的相应头或数据体将随此相应返回。
303( See Other):奉告客户端利用另一个 URL 来获取资源。
400( Bad Request):要求格式缺点。
1)语义有误,当前要求无法被做事器理解。
除非进行修正,否则客户端不应该重复提交这个要求;2)要求参数有误。
404( Not Found):要求失落败,要求所希望得到的资源未被在做事器上创造。
500( Internal Server Error):做事器碰着了一个未曾预见的状况,导致了它无法完成对要求的处理。

更多状态码:

100 => 正在初始化(一样平常是看不到的) 101 => 正在切换协议(websocket 浏览器供应的) 202 => 表示接管 301 => 永久重定向/永久转移 302 => 临时重定向/临时转移(一样平常用来做做事器负载均衡) 304 => 本次获取的内容是读取缓存中的数据,会每次去做事器校验 401 => 未认证,没有登录网站 403 => 禁止访问,没有权限 503 => 做事器超负荷(假设一台做事器只能承受 10000 人,当第 10001 人访问的时候,如果做事器没有做负载均衡,那么这个人的网络状态码便是 503)

5、请先容一下 XMLHTTPrequest工具及常用方法和属性(必会)

XMLHTTPrequest 工具 Ajax 的核心是 JavaScript 工具 XmlHTTPRequest。
该工具在 Internet Explorer 5 中首次引入,它 是一种支持异步要求的技能。
简而言之,XmlHTTPRequest 使您可以利用 JavaScript 向做事器 提出要求并处理相应,而不壅塞用户。
通过 XMLHTTPRequest 工具,Web 开拓职员可以在页面加载往后进行页面的局部更新

方法

open(String method,String url,boolean asynch,String username,String password)send(content)setRequestHeader(String header,String value)getAllResponseHeaders()getResponseHeader(String header)abort()

常器具体解析

open():该方法创建 HTTP 要求 第一个参数是指定提交办法(post、get) 第二个参数是指定要提交的地址是哪 第三个参数是指定是异步还是同步(true 表示异步,false 表示同步) 第四和第五参数在 HTTP 认证的时候会用到。
是可选的

setRequestHeader(String header,String value):设置头(利用 post 办法才会利用到,get 方法并不须要调用该方法)

xmlHTTP.setRequestHeader("Content-type","application/x-www-form-urlencoded"); send(content):发送要求给做事器

如果是 get 办法,并不须要填写参数,或填写 null 如果是 post 办法,把要提交的参数写上去

常用属性 onreadystatechange:要求状态改变的事宜触发器(readyState 变革时会调用此方法),一样平常用于指定回调函数 readyState:要求状态 readyState 一改变,回调函数被调用,它有 5 个状态

0:未初始化 1:open 方法成功调用往后 2:做事器已经应答客户真个要求 3:交互中。
HTTP 头信息已经吸收,相应数据尚未吸收。
4:完成。
数据吸收完成 responseText:做事器返回的文本内容 responseXML:做事器返回的兼容 DOM 的 XML 内容 status:做事器返回的状态码 statusText:做事器返回状态码的文本信息

回调函数是什么 回调函数便是吸收做事器返回的内容!

6、Ajax的实现流程是若何的?(必会)

1、创建 XMLHTTPRequest 工具,也便是创建一个异步调用工具. 2、创建一个新的 HTTP 要求,并指定该 HTTP 要求的方法、URL 及验证信息. 3、设置相应 HTTP 要求状态变革的函数. 4、发送 HTTP 要求. 5、获取异步调用返回的数据. 6、利用 JavaScript 和 DOM 实现局部刷新.

<script type="text/javascript"> var HTTPRequest; function checkUsername() { //创建 XMLHTTPRequest 工具 if(window.XMLHTTPRequest) { //在 IE6 以上的版本以及其他内核的浏览器(Mozilla)等 HTTPRequest = new XMLHTTPRequest(); }else if(window.ActiveXObject) { //在 IE6 以下的版本 HTTPRequest = new ActiveXObject(); } //创建 HTTP 要求 HTTPRequest.open("POST", "Servlet1", true); //由于我利用的是 post 办法,以是须要设置头 HTTPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //指定回调函数 HTTPRequest.onreadystatechange = response22; //得到文本框的数据 var name = document.getElementById("username").value; //发送 HTTP 要求,把要检测的用户名通报进去 HTTPRequest.send("username=" + name); } //吸收做事器相应数据 function response22() { //判断要求状态码是否是 4【数据吸收完成】 if(HTTPRequest.readyState==4) { //再判断状态码是否为 200【200 是成功的】 if(HTTPRequest.status==200) { //得到做事端返回的文本数据 var text = HTTPRequest.responseText; //把做事端返回的数据写在 div 上 var div = document.getElementById("result"); div.innerText = text; } } } </script>7、Ajax 吸收到的数据类型有哪些,数据如何处理?(必会)

吸收到的数据类型

String /JSON 字符串/JSON 工具JSON 工具直接循环利用JSON 字符串转 JSON 利用String 直策应用

如何处理数据

1、字符串转工具 第一种办法:eval();

var data = '{"student":[{"name":"张三","age":"11"},{"name":"李四","age":"11"},{"name":"王五","age":"11"}]}';eval('("+data+")');

第二种办法:JSON.parse();

var data='{"student":[{"name":"张三","age":"11"},{"name":"李四","age":"11"},{"name":"王五","age":"11"}]}';JSON.parse(data);

与 eval()差异:

eval()方法不会去检讨给的字符串时候符合 json 的格式~同时如果给的字符串中存在 js代码 eval()也会一并实行~比如:

var data='{"student":[{"name":"张三","age":"11"},{"name":"李四","age":"alert(11)"},{"name":"王五","age":"11"}]}';

此时实行 eval 方法后会先弹出一个提示框输出 11 的字符串;

这时候利用 JSON.parse()就会报错,显示缺点信息为当前字符串不符合 json 格式;

即JSON.parse()方法会检讨须要转换的字符串是否符合 json 格式

比较而言 eval() 方法是很不屈安,特殊是当涉及到第三方时我们须要确保传给 eval()的参数是我们可以掌握的,不然里面插入比如 window.location~指向一个恶意的连接总的来说,还是推举利用 JSON.parse()来实现 json 格式字符串的解析

2、工具转字符串 JSON.stringify(json)

8、请阐明一下 JavaScript的同源策略(必会)

同源策略是客户端脚本(尤其是 Javascript )的主要的安全度量标准。
它最早出自 Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载。
所谓同源指的是:协议, 域名,端口相同,同源策略是一种安全协议,指一段脚本只能读取来自同一来源的窗口和文档的属性。

9、阐述一下异步加载 JS(必会)

异步加载的方案

动态插入 script 标签通过 Ajax 去获取 js 代码,然后通过 eval 实行script 标签上添加 defer 或者 async 属性创建并插入 iframe,让它异步实行 js

参考资料 HTTPS://www.cnblogs.com/zichi/p/4597766.html HTTPS://www.cnblogs.com/xkloveme/articles/7569426.html

10、为什么会有跨域的问题涌现,如何办理跨域问题(必会)

什么是跨域?

指的是浏览器不能实行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对 javascript 施加的安全限定,防止他人恶意攻击网站

比如一个黑客,他利用 iframe 把真正的银行登录页面嵌到他的页面上,当你利用真实的用户名和密码登录时,如果没有同源限定,他的页面就可以通过 JavaScript 读取到你的表单中输入的内容,这样用户名和密码就轻松得手了。

办理办法

办理办法1 ----jsonp事理:动态创建一个 script 标签。
利用 script 标签的 src 属性不受同源策略限定。
由于所有的 src 属性和 href 属性都不受同源策略限定。
可以要求第三方做事器数据内容。
步骤:去创建一个 script 标签script 的 src 属性设置接口地址接口参数,必须要带一个自定义函数名 要不然后台无法返回数据。
通过定义函数名去吸收后台返回数据//去创建一个 script 标签var script = document.createElement("script");//script 的 src 属性设置接口地址 并带一个 callback 回调函数名称script.src = "HTTP://127.0.0.1:8888/index.php?callback=jsonpCallback";//插入到页面document.head.appendChild(script);//通过定义函数名去吸收后台返回数据 function jsonpCallback(data){ //把稳 jsonp 返回的数据是 json 工具可以直策应用 //Ajax 取得数据是 json 字符串须要转换成 json 工具才可以利用。
}办理办法2 ----CORS:跨域资源共享事理:做事器设置 Access-Control-Allow-OriginHTTP 相应头之后,浏览器将会许可跨域要求限定:浏览器须要支持 HTML5,可以支持 POST,PUT 等方法兼容 ie9 以上须要后台设置 Access-Control-Allow-Origin: //许可所有域名访问,或者 Access-Control-Allow-Origin: HTTP://a.com //只许可所有域名访问办理办法3 ----反向代理办理办法4 ----window+iframe
标签:

相关文章

Python编程从入门到精通,探索编程之美

编程已经成为现代社会的一项基本技能。Python作为一种简单易学、功能强大的编程语言,在我国教育领域备受关注。本文将从Python...

网站推广 2025-03-02 阅读0 评论0

Scum07代码编程之美与适用方法

编程已成为当今社会不可或缺的技能之一。Scum07代码作为一款经典的编程语言,在我国众多程序员中备受推崇。本文将深入解析Scum0...

网站推广 2025-03-02 阅读0 评论0

Linux环境下的前端代码运行优化与步骤

前端技术逐渐成为软件开发的核心。Linux操作系统因其稳定性、安全性、开放性等特点,成为众多开发者和企业青睐的运行环境。本文将从L...

网站推广 2025-03-02 阅读0 评论0