Говоря Бодхи Патриарх ударил обезьяны три доски затем узнать WuKong 72 -как изменения, и магическое удовольствие этот вопрос , как интервьюера думать о более глубокий смысл , больше может быть в состоянии признать ,
На самом деле написано Ajax способен видеть уровень нескольких кусков коды можно увидеть размещенные низкие уровни
Код 1: Уровень Bronze
вар REQ = новый XMLHttpRequest ();
req.open ( "получить", "mockData / usersinfo.json", правда);
req.send ();
req.onreadystatechange = функция () {
если (req.readyState == 4 && req.status == 200) {
результат переменная = req.responseText;
}
}
Особенно характерно для нативного АЯКС функции, в частности , простая функция для получения данных коды моделирования может отражать то , что вы пишете может правильно помните
Код 2: серебряный уровень
Функция Аякс (тип, URL, успех) {
вар REQ = новый XMLHttpRequest ();
req.open (тип, URL, правда);
req.send ();
req.onreadystatechange = функция () {
если (req.readyState == 4 && req.status == 200) {
результат переменная = req.responseText;
успех (результат);
}
}
}
Аякса ( "получить", "HTTP: // локальный: 8055 / listcount.php поиск = а?", функция (результат) {
Alert (результат);
});
Выше код с кодом 1 функции можно сказать, что то же , но повторное использование кода становится совершенно другой
на самом деле
Куда звонить, потому что вы можете позвонить на где
Код 3: Золотой уровень
Функция Ajax (JSON) {
вар REQ = новый XMLHttpRequest ();
тип переменная = JSON [ "тип"];
вар URL = JSON [ "URL"];
если (JSON [ "данные"]) {
вар HTML = "?";
для (вар я в JSON [ "данные"]) {
HTML + = I + "=" + JSON [ "данные"] [I] + "&";
}
HTML = html.substring (0, html.length - 1);
URL = + HTML;
}
Var = успех JSON [ "успех"];
req.open (тип, URL, правда);
req.send ();
req.onreadystatechange = функция () {
если (req.readyState == 4 && req.status == 200) {
результат переменная = req.responseText;
Результат = JSON.parse (результат);
}
Успех (результат);
}
}
}
Аякса ({
типа: "получить",
URL: "HTTP: // локальный: 8055 / listcount.php",
данные: {Поиск: "л"},
DATATYPE: "" JSON,
успех: функция (результат) {
оповещения (результат [ "подсчет"]);
}
});
Приведенный выше код выполняет те же функции , но чувствует себя лучше , не так мало , так называемое чувство использования JQ AJAX на данный момент можно потанцевать ла ла ла не отвечают
Код 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