
现代浏览器进程划分:

各进程核心负责内容:
从源码到屏幕的12个阶段:

关键优化点:
<link rel="preload">标签<img>标签的src set属性预加载图片标记-清除算法(Mark-Sweep):

分代回收策略:
内存代 | 对象特征 | 回收频率 |
|---|---|---|
新生代 | 短期存活(<1s) | 高频 |
老生代 | 长期存活(>1s) | 低频 |
内存泄漏检测四步法:
拍摄堆快照(Heap Snapshot)
执行目标操作
拍摄对比快照
计算差值(Δ=后续快照-基准快照)
闭包泄漏示例:
function createLeak() {
const bigData = new ArrayBuffer(1e6); // 1MB数据
return function() {
console.log(bigData.byteLength);
};
}
// 解决方案:显式置空
function createSafe() {
const bigData = new ArrayBuffer(1e6);
return function() {
console.log(bigData.byteLength);
bigData = null; // 关键行
};
}DOM泄漏示例:
// 错误模式
const button = document.createElement('button');
document.body.appendChild(button);
button.addEventListener('click', () => {
// 事件处理函数未移除
});
// 正确模式
button.addEventListener('click', handler);
button.removeEventListener('click', handler);
XSS攻击一般指的是通过利用网页开发时留下的漏洞,通过表单输入等方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。注入成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
三种攻击类型对比:
类型 | 攻击载体 | 防御难度 | 检测方式 |
|---|---|---|---|
存储型XSS | 数据库/本地存储 | 高 | 输入输出过滤 |
反射型XSS | URL参数 | 中 | CSP策略 |
DOM型XSS | 客户端JavaScript | 低 | 代码审计 |
防御策略矩阵:
防御层 | 技术方案 | 防护效果 |
|---|---|---|
输入层 | 正则过滤(/<\/script>/gi) | 入门 |
输出层 | 实体编码(< >) | 中级 |
协议层 | Content-Security-Policy | 高级 |
架构层 | 模板引擎自动转义(如React) | 最佳 |
CSRF,即跨站点请求伪造(Cross-Site Request Forgery),。其原理在于攻击者盗用用户身份,以用户名义向服务器发送恶意请求。这些请求在服务器看来完全合法,却能执行攻击者预期的操作,如发送邮件、发布消息、盗取账号、添加系统管理员等危险操作。
攻击流程详细步骤:

防御技术演进:
Set-Cookie: session=xxx; SameSite=StrictOrigin/Referer头
盒模型三层结构:
在CSS中,盒模型(Box Model)是用来布局和设计网页元素的一种基础概念。它由四个主要部分组成:内容(content)、内边距(padding)、边框(border)和外边距(margin)。这三个结构层次构成了网页中元素的基本框架。

CSS覆盖优先级:
/* 具体示例 */
<style>
/* 内联样式 */
<p style="color: red;">测试</p>
/* 内部样式表 */
p { color: blue; }
/* 外部样式表 */
@import url("external.css");
</style>优先级计算规则:
内联样式 > ID选择器 > 类选择器 > 标签选择器 > 通配符
日志分级实现:
// 自定义日志等级
console.level = {
DEBUG: 0,
INFO: 1,
WARN: 2,
ERROR: 3
};
console.log = function(level, ...args) {
if (console.level[level] >= console.level.INFO) {
console.info(...args);
}
};
// 使用示例
console.log('INFO', '系统启动完成');性能分析技巧:
// 计算函数执行时间
function measurePerformance(fn) {
console.time('execTime');
fn();
console.timeEnd('execTime');
}
// 跟踪函数调用
console.trace('函数调用链');原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。