HTML、CSS面试题大全 (单题)
题型 | 难易度 | 出现频率 | 浏览 | 评论 |
---|---|---|---|---|
问答题 | 15 | 0 |
试题信息收集不易,转发请带上出处,不甚感谢!如果您对任何编程问题还有疑问,欢迎点击下方按钮向老师提问!
问答题
- 页面优化有哪些方法
- 请求HTTP请求:合并文件、CSS精灵、inline Image
- 减少DNS查询
- DNS查询完成之前浏览器不能从这个主机下载任何任何文件。方法:DNS缓存、将资源分布到恰当数量的主机名,平衡并行下载和DNS查询
- 避免重定向:多余的中间访问
- 重定向状态码:302Found被找到了,但不在原来的地址,临时重定向
- 状态码:301Move Permanently 永久重定向
- 对用户来说,301、302没有区别;对搜索引擎来说,区别很大
- 使Ajax可缓存
- 非必须组件延迟加载
- 未来所需组件预加载
- 减少DOM元素数量
- 优化DOM操作的方式:
- 1.1 用cssText来合并多次DOM操作。
var el = document.getElementById('mydiv'); el.style.borderLeft = '1px'; el.style.borderRight = '2px'; el.style.padding = '5px';
改为:
var el = document.getElementById('mydiv'); l.style.cssText = 'border-left: 1px; border-right: 2px; padding: 5px;';
1.2 将需要多次重排的元素position设置为absolute和fixed,这样元素就脱离了文档流,它的变化就不会影响其他元素的渲染。例如针对有动画效果的元素。
1.3 减少对DOM元素的查询和修改,查询时可将其赋值给局部变量。
divUpdate.innerHTML = ""; for ( var i=0; i<100; i++ ) { divUpdate.innerHTML += "<SPAN>This is a slower method! </SPAN>"; }
改成:
- 将资源放到不同的域下:浏览器同时从一个域下载资源的数目有限,增加域可以提高并行下载量
- 减少iframe数量
- 不要404
Server方面
- 使用CDN
- 内容分发网络,就近使用服务器获得资源,减少网络拥塞。
- 添加Expires或者Cache-Control响应头
- 当服务器开启了expire模块的时候,浏览器发送请求,服务器机会返回一个带expire的http请求头
- expire头的值是一个时间值,值就是资源在本地的过期时间、存在本地、在本地缓存阶段,找到一个对应的资源值,当前时间还没超过资源的过期时间,就直接使用这一个资源,不会发送http请求。
- cache-control和expires类似,但是有更多的选项值。
- 对组件使用Gzip压缩
- 本地压缩
- 服务器压缩
- 配置实体标签ETag
- Flush Buffer Early
- Ajax使用GET进行请求
- 避免空src的img标签
- Cookie方面
- 减小cookie大小
- 引入资源的域名不要包含cookie
css方面
- 将样式表放到页面顶部
- 不使用CSS表达式
- css表达式:就是将CSS和javascript联系起来。
- 使用不使用@import
- 不使用IE的Filter
Javascript方面
- 将脚本放到页面底部
- 将javascript和css从外部引入
- 提高了复用性
- 减少页面体积
- 提高了可维护性
- 利大于弊,缺点是页面的渲染速度有下降
- 压缩javascript和css
- 在正式上线项目之前,将js和CSS都进行压缩,使线上版本是最轻量的。
- 删除不需要的脚本
- 减少DOM访问
- 合理设计事件监听器
图片方面
- 优化图片:根据实际颜色需要选择色深、压缩
- 优化css精灵
- 不要在HTML中拉伸图片
- 保证favicon.ico小并且可缓存
移动方面
- 保证组件小于25k