标签:overflow ref join world 函数 文档对象模型 sock content lis
解析HTML构建DOM树(Document Object Model,文档对象模型),DOM是W3C组织推荐的处理可扩展置标语言的标准编程接口
构建渲染树并不等同于DOM树,因为像head标签 或 display:none
这样的元素就没有必要放到渲染树中,但是它们在DOM树中。
对渲染树进行布局,定位坐标和大小、确定是否换行、确定position、overflow、z-index等等,这个过程叫"layout" 或"reflow"
绘制渲染树,调用操作系统底层的API进行绘图操作
node.js是一个开发平台,就像java开发平台、.Net开发平台、PHP开发平台、Apple开发平台一样。
该平台使用的编程语言是 JavaScript 语言
node.js 平台基于 Chrome V8 JavaScript 引擎构造
基于 node.js 可以开发控制台程序(命令行程序、CLI程序)、桌面应用程序(GUI)(借助 node-webkit、electron等框架实现)、Web应用程序(网站)
PHP 开发技术栈:LAMP - Linux Apache Mysql PHP
node.js 全栈开发技术栈:MEAN - MongoDB Express Angular Node.js
Read-Eval-Print-Loop(交互式解释器)
控制台
在REPL中编写程序(类似于浏览器开发人员工具中的控制台功能),直接在控制台输入node
命令进入REPL环境
按两次Control + C 退出REPL界面 或者 输入 .exit
退出REPL界面
JavaScript
官方文档中:Stability 。0:过时,1:正在开发测试,2:稳定。
// hello-world-01.js
var m = 100;
var n = 100;
function add(x,y){
return x + y;
}
var result = add(m,n);
console.log(‘返回的结果是:‘+result);
# 执行hello-world-01.js
node hello-world-01.js
var fs = require(‘fs‘);
fs.readFile(
‘./hello.txt‘,
function(err,data){
if(err){
throw err;
}
// 把Buffer转String,调用toString。toString()参数默认 utf8
console.log(data);
console.log(data.toString(‘utf8‘));
}
);
// 文件路径
// __dirname:当前执行的js文件的完整目录路径
// __filename:当前执行的js文件的完整文件路径
// __ 是两个下划线
// 执行文件操作
// --- 实现文件写入操作 ---
// 1、加载文件操作模块 fs模块
var fs = require(‘fs‘);
// 2、实现文件写入操作
var msg = ‘Hello World,你好世界!‘;
// 调用fs.writhFile() 进行文件写入
// 异步执行
fs.writeFile(
‘./hello.txt‘,
msg,
‘utf8‘,
function(err){
if(err === null){
console.log(‘文件写入成功!‘);
}else {
console.log(‘文件写入失败!具体错误:‘ + err);
}
}
);
// 创建一个简单的http服务器程序
// 1、加载http模块
var http = require(‘http‘);
// 2、创建一个http服务对象
var server = http.createServer();
// 3、监听用户的请求事件(request事件)
// request对象包含用户请求报文中的所有内容,通过request对象可以获取所有用户提交过来的数据
// response对象用来向用户响应一些数据,当服务器要向客户端响应数据时,必须使用reponse对象
// 有了request对象和reponse对象,就既可以获取用户提交的数据,也可以向用户响应数据了
server.on(‘request‘,function(req,res){
// 乱码解决思路:
// 在res.write(‘中文‘)时,响应在客户端的内容如果编码不一致,会导致乱码
// 服务器通过设置http响应报文头,指定客户端采用响应编码解析网页
/** 响应报文头还可设置其他信息。参考地址:开源中国 -- 在线工具 -- HTTP Mime-type **/
/** 第三方模块:mime,来判断不同类型 **/
res.setHeader(‘Content-Type‘,‘text/plain;charset=utf-8‘);
res.write(‘Hello World‘);
// 对于每一个请求,服务器必须结束响应,否则客户端(浏览器)会一直等待服务器的响应
res.end();
})
// 4、启动服务 -- 命令 node hello.js
server.listen(3000,function(){
console.log(‘服务已启动,,,‘);
});
// 根据用户不同请求,服务器做出不同响应
// 响应内容为文本
var http = require(‘http‘);
http.createServer(function(req,res){
// 获取用户请求路径 req.url
if(req.url === ‘/‘ || req.url === ‘/index‘){
res.end(‘index‘);
}else if(req.url === ‘/a‘){
res.end(‘a‘);
}else{
res.end(‘404 Not Found‘);
}
}).listen(3000,function(){
console.log(‘服务已启动,,,‘);
});
// 根据用户不同请求,服务器做出不同响应
// 响应内容为页面
var http = require(‘http‘);
var fs = require(‘fs‘); // 文件
var path = require(‘path‘); // 拼接路径
http.createServer(function(req,res){
// 获取用户请求路径 req.url
if(req.url === ‘/‘ || req.url === ‘/index‘){
// path.join():拼接路径
// __dirname:当前执行的js文件的完整目录路径
fs.readFile(path.join(__dirname,‘htmls‘,‘index.html‘),function(err,data){
if(err){
throw err;
}
// 把读取到的页面中的内容直接发送给服务器
res.end(data);
});
}else if(req.url === ‘/a‘){
fs.readFile(path.join(__dirname,‘htmls‘,‘a.html‘),function(err,data){
if(err){
throw err;
}
res.end(data);
});
}else{
fs.readFile(path.join(__dirname,‘htmls‘,‘notFound.html‘),function(err,data){
if(err){
throw err;
}
res.end(data);
});
}
}).listen(3000,function(){
console.log(‘服务已启动,,,‘);
});
http.IncomingMessage
服务器解析用户提交的http请求报文,将结果解析到request
对象中。
凡是要获取和用户请求相关的数据都可以通过request
对象获取。
http.ServerResponse
在服务器端用来向用户做出响应的对象。
凡是需要向用户(客户端)响应的操作,都需要通过response
对象进行
标签:overflow ref join world 函数 文档对象模型 sock content lis
原文地址:https://www.cnblogs.com/luckyzs/p/13192707.html