Общее ощущение, которое вы у меня вызвали после интервью, требует от вас овладения не только широтой, но и глубиной. Я не задавал много вопросов о интервью, которые я подготовил для плохой улицы.Может, мне еще чего-то не хватает, продолжайте учиться, продолжать совершенствоваться и дать себе откусить, подраться!!!
Обобщите воспоминания о вопросах, заданных интервьюером, следующим образом:
Вопросы о фреймах
Какие фреймворки использовались, я чувствую, что им нужно не только уметь их использовать, но и уделять больше внимания глубине понимания, например, пониманию исходного кода, идее алгоритма diff в реакции, пониманию принципы и возможность оптимизировать и улучшить производительность, такой уровень, кажется, они хотят.
Как запустить службу http в узле
Я не ответил на это, и я вдруг забыл.Я немного изучил node.js раньше, и я помню только, какие модули были введены, но я никак не могу вспомнить, как это реализовать. Ссылаться наблог, создайте простейший http-сервер следующим образом:
// 引入内置http模块
var http = require('http');
// 创建一个简单服务器,访问http://127.0.0.1:1337/,显示Hello World
http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
Каковы методы реализации анимации CSS3, напишите div для перемещения на 300 пикселей в течение 1 с
В то время я только ответил, что есть два способа анимации перехода и анимации, анимация перехода определяет только начальное и конечное состояния, а анимация анимации может быть установлена покадрово. Затем интервьюер попросил меня переместить блок div на 300 пикселей за 1 с. Я не могу вспомнить, как именно это написать. Я до сих пор виню себя за то, что не умею писать произвольно.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style type="text/css">
/* transition属性动画结合transform变化属性,实现元素移动一段距离的动画 */
#transitonDiv:hover {
transition: all 1s ease-in-out;
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
-o-transition: all 1s ease-in-out;
transform: translateX(300px);
-ms-transform: translateX(300px);
-moz-transform: translateX(300px);
-webkit-transform: translateX(300px);
-o-transform: translateX(300px);
}
/* 通过animation属性,实现逐帧动画 */
#animationDiv:hover {
animation: animName 1s ease-in-out;
-webkit-animation: animName 1s ease-in-out;
-moz-animation: animName 1s ease-in-out;
-o-animation: animName 1s ease-in-out;
}
/* 定义关键帧 */
@keyframes animName {
0% {
transform: translateX(0px);
}
30% {
transform: translateX(100px);
}
60% {
transform: translateX(200px);
}
100% {
transform: translateX(300px);
}
}
</style>
</head>
<body>
<div id="transitonDiv" style="width:40px;height:40px;background-color:red;"></div>
<div id="animationDiv" style="width:40px;height:40px;background-color:green;"></div>
</body>
</html>
Процесс разрешения DNS? Как найти в DNS новое примененное доменное имя?
Справочный блог DNS-запросов на стороне сервераПодробное объяснение процесса разрешения DNS.
DNS — это протокол прикладного уровня, фактически он работает с другими протоколами прикладного уровня, включая, помимо прочего, HTTP, SMTP и FTP, для преобразования имен хостов, предоставленных пользователями, в IP-адреса.
Конкретный процесс выглядит следующим образом:
(1) Кэш браузера: когда пользователь получает доступ к доменному имени через браузер, браузер сначала проверяет, есть ли IP-адрес, соответствующий доменному имени, в его собственном кеше (если доменное имя было посещено и кеш не был очищен, он существует). );
(2) Системный кеш: когда в кеше браузера нет IP-адреса, соответствующего доменному имени, он автоматически проверяет, есть ли IP-адрес, соответствующий доменному имени, в кеше DNS файла Hosts компьютерной системы пользователя;
(3) Кэш маршрутизатора: когда в браузере и системном кеше нет IP-адреса, соответствующего доменному имени, введите кеш маршрутизатора для проверки, три вышеуказанных шага - это кеш DNS клиента;
(4) DNS-кэш провайдера (интернет-провайдера): когда IP-адрес, соответствующий доменному имени, не может быть найден на стороне обслуживания клиентов, он войдет в DNS-кэш интернет-провайдера для запроса. Например, если вы используете телекоммуникационную сеть, вы войдете в кэш-сервер телекоммуникационного DNS для поиска; (или запросите локальный DNS, указанный в настройках сети, если DNS указан на ПК, если нет настройки, такой как DNS динамическое получение, а затем инициировать запрос запроса к DNS провайдера)
(5) Сервер имен корневого домена: если ничего из вышеперечисленного не выполнено, введите корневой сервер для запроса. В мире существует только 13 корневых серверов доменных имен, 1 первичный корневой сервер доменных имен, а остальные 12 являются вторичными корневыми серверами доменных имен. После того, как корневое доменное имя получит запрос, оно проверит запись файла зоны, если нет, сообщит локальному DNS-серверу IP-адрес сервера доменного имени верхнего уровня (например, .com) в пределах своей юрисдикции;
(6) Сервер доменных имен верхнего уровня: сервер доменных имен верхнего уровня проверяет запись файла зоны после получения запроса и, если таковой нет, сообщает локальному DNS-серверу IP-адрес основного сервера доменных имен в пределах его юрисдикции;
(7) Основной сервер доменных имен: основной сервер доменных имен запрашивает собственный кеш после получения запроса, если нет, то он заходит на сервер доменных имен следующего уровня для поиска, и повторяет этот шаг до тех пор, пока не будет найдена правильная запись;
(8) Сохраните результат в кеш: локальный сервер доменных имен сохраняет возвращенный результат в кэше для следующего использования и возвращает результат клиенту, а клиент устанавливает связь с веб-сервером через этот IP-адрес.
Статус запроса Ajax и его значение
При написании AJax в javascript наиболее важным шагом является установка прослушивателя для объекта XMLHttpRequest, то есть использование метода «onreadystatechange». При мониторинге необходимо судить о статусе запроса объекта XMLHttpRequest.Обычно оценивается, что значение readyState равно 4, а значение статуса возврата http равно 200 или 304 для выполнения нужной нам операции.
Свойство readyState представляет текущее состояние запроса Ajax.
0 代表未初始化。 还没有调用 open 方法
1 代表正在加载。 open 方法已被调用,但 send 方法还没有被调用
2 代表已加载完毕。send 已被调用。请求已经开始
3 代表交互中。服务器正在发送响应
4 代表完成。响应发送完毕
операция cookie, чтение и запись
Смущенный. . . Файлы cookie никогда не подвергались манипуляциям.
Справочный блогПодробное объяснение работы куки в JS.
(function(){
var cookieObj = {
//修改或是添加cookie
'add': function(name, value, hours) {
var expire = "";
if(hours != null){
expire = new Date((new Date()).getTime() + hours * 3600000);
expire = "; expires=" + expire.toGMTString();
}
document.cookie = name + "=" + escape(value) + expire + ";path=/";
//如果指定域名可以使用如下
//document.cookie = name + "=" + escape(value) + expire + ";path=/;domain=findme.wang";
},
//读取cookie
'get': function(c_name){
if (document.cookie.length>0) {
c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1) {
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end == -1) {
c_end = document.cookie.length;
}
return unescape(document.cookie.substring(c_start,c_end));
}
}
return "";
}
};
window.cookieObj=cookieObj;
}());
Результат оказался неожиданно крутым. Продолжай кормить себя грудью, борись!!!