前端面试题目

Posted by monkey-yu on December 28, 2018 | 浏览量: - 次

前端面试第一讲

正文

前端需要注意哪些SEO

  1. 合理的title、description、keywords:搜索对这三项的权重逐个减小。title值强调重点即可,重要关键词出现不超过2次,要靠前,不同页面title要有所不同;description把页面内容高度概括,长度合适;keywords列举出重要关键词即可。
  2. 语义化的html代码,符合w3c规范,语义化让搜索引擎容易理解网页。
  3. 重要内容HTML代码放在最前。搜索引擎抓取HTML顺序是从上到下,且长度有限制。
  4. 重要内容不要用js输出:爬虫不会执行js获取内容。
  5. 提高网站速度:网站速度是搜索引擎排序的一个重要指标。

web开发中会话跟踪的方法有哪些

cookie 、session 、url重写 、隐藏input、ip地址

从浏览器地址栏输入url到显示页面的步骤(以http为例)

  1. 在浏览器地址输入url;
  2. 浏览器查看缓存,如果请求资源在缓存中并新鲜,跳转到转码步骤
    1. 如果资源未缓存,发起新请求
    2. 如果已缓存,检查是否足够新鲜,足够新鲜直接提供给客户端,否则与服务器进行验证。
    3. 检查新鲜通常有两个http头进行控制Expires 和Cache-Control:
      1. HTTP1.0提供Expires,值为一个绝对时间表示缓存新鲜日期
      2. HTTP1.1增加了Cache-Control:max-age=,值为以秒为单位的最大新鲜时间
  3. 浏览器解析URL获取协议,主机,端口,path
  4. 浏览器组装一个HTTP(GET)请求报文
  5. 浏览器获取主机IP地址,过程如下:
    1. 浏览器缓存
    2. 本机缓存
    3. hosts文件
    4. 路由器缓存
    5. ISP DNS缓存
    6. DNS递归查询
  6. 打开一个socket与目标IP地址,端口建立TCP链接,三次握手
  7. TCP链接建立后发送HTTP请求
  8. 服务器接受请求并解析,将请求转发到服务程序
  9. 服务器检查HTTP请求头是否包含缓存验证信息如果验证缓存新鲜,返回304等对应状态码
  10. 服务器将响应报文通过TCP连接发送回浏览器;
  11. 如果资源可缓存,进行缓存
  12. 对响应进行解码
  13. 解析HTML文档,构件DOM树,下载资源,构造CSSOM树,执行js脚本
  14. 显示页面(HTML解析过程中会逐步显示页面)

如何进行网站性能优化

  • 内容方面:
    1. 减少http请求
    2. 减少DNS查询
    3. 避免重定向
    4. 非必须组件延迟加载
    5. 未来所需组件预加载
    6. 使ajax可缓存
  • server方面:
    1. 使用CDN
    2. 添加Expires 或者Cache-Control响应头
    3. 对组件进行Gzip压缩
    4. 配置ETag
    5. 避免空src的img标签
  • Cookie方面:
    1. 减小cookie大小
    2. 引入资源的域名不要包含cookie
  • Javascript方面:
    1. 将脚本放到页面底部
    2. 压缩js和css
    3. 减少DOM访问
    4. 合理设计事件监听器
  • 图片方面:
    1. 优化图片
    2. 不要在html中拉伸图片
    3. 保证favicon.ico小并且可缓存