보리 대주교는 원숭이 세 보드 히트 말하는 다음 Wukong 배우 (72 명) -like 변경하고, 마법의 치료가 면접관으로이 문제를 더 깊이 더 의미하는 것은 할 수 있습니다에 대해 생각하는 것은 인정합니다
사실 아약스는 서면 게시 낮은 수준을 볼 수있는 코드의 여러 덩어리의 수준을 볼 수있다
코드 1 : 브론즈 레벨
VAR의 REQ = 새로운 XMLHttpRequest 객체 ();
req.open (사실, "mockData / usersinfo.json"을 "GET");
req.send ();
req.onreadystatechange = 함수 () {
경우 (req.readyState의 == 4 && req.status의 == 200) {
VAR 결과 = req.responseText;
}
}
네이티브에 특히 일반적인 아약스 기능은 잘 기억 쓸 것을 반영 할 수있는 시뮬레이션 코드의 데이터를 얻기 위해 특히 간단한 기능입니다
코드 2 : 실버 수준
기능 아약스 (유형, URL, 성공) {
var에 REQ = 새로운 XMLHttpRequest의 ();
req.open (유형, URL, TRUE);
req.send ();
req.onreadystatechange = 함수 () {
경우 (req.readyState의 == 4 && req.status의 == 200) {
VAR 결과 = req.responseText;
성공 (결과);
}
}
}
아약스 ( "GET"에 "http : // localhost를 : 8055 / listcount.php 검색 = A?", 기능 (결과) {
경고 (결과);
});
상기 부호 코드와 1 기능은 동일하지만, 코드 재사용이 완전히 달라진다 말할 수있다
정말로
어디에서 호출 할 수 있기 때문에 어디에서 호출
코드 3 : 골드 레벨
함수 AJAX JSON () {
var에 REQ = 새로운 XMLHttpRequest 객체 ();
VAR 타입 = JSON의 [ "타입"];
VAR의 URL = JSON [ "URL"];
JSON ([ "데이터"]) {경우
"?"var에 HTML =;
대 (VAR JSON I에서 [ "데이터"]) {
HTML + = I + "="+ JSON [ "데이터"[I] + "및";
}
HTML html.substring = (0, html.length - 1);
URL + = html로;
}
VAR 성공 JSON = [ "성공"];
req.open (유형, URL, TRUE);
req.send ();
req.onreadystatechange = 함수 () {
경우 (req.readyState의 == 4 && req.status의 == 200) {
VAR 결과 = req.responseText;
JSON.parse 결과 = (결과);
}
성공 (결과);
}
}
}
아약스 ({
유형 : "GET"
, "8055 / listcount.php HTTP : : : // localhost"를 URL
} "L": {검색 : 데이터
dataType와 : "json으로"
성공 : 기능 (결과) {
경고 ([ "계산"] 결과);
}
});
위의 코드는 동일한 기능입니다 하지만 더 나은 느낌은 그것을 조금 소위 아니다 을 충족하지 않는 라 라 라 춤을 수있는 순간에 JQ 사용 아약스의 느낌
코드 4 : 다이아몬드 수준
var $ = {
ajax: function (json) {
var req = new XMLHttpRequest();
var type = json["type"];
var url = json["url"];
if (json["data"]) {
var html = "?";
for (var i in json["data"]) {
html += i + "=" + json["data"][i] + "&";
}
html = html.substring(0, html.length - 1);
url += html;
}
var success = json["success"];
req.open(type, url, true);
req.send();
req.onreadystatechange = function () {
if (req.readyState == 4 && req.status == 200) {
var result = req.responseText;
if (json["dataType"] == "json") {
result = JSON.parse(result);
}
success(result);
}
}
}
}
$.ajax({
type: "get",
url: "http://localhost:8055/listcount.php",
data: {search: "l"},
dataType: "json",
success: function (result) {
alert(result["count"]);
}
});
怎么样 虽然写的是原生ajax 但是写出了jq底层代码的味道 跟jq中使用方式一模一样 参数 回调 封装 面面俱到 水平高低 一看就知道了 自己都会写 工作肯定也就会用 这才是钻石水平 还有更高级的星耀 就可以融入Promise 请求头配置等等
不要小看任意一道面试题 可能其中另有深意 体验自己的价值才能拿到更快拿到offer