1.请描述一个网页从开始请求到最终显示的完整过程?

1).在浏览器中输入网址;

2).发送至DNS服务器并获得域名对应的WEB服务器的IP地址;

3).与WEB服务器简历TCP连接;

4).浏览器向WEB服务器的IP地址发送相应的HTTP请求;

5).WEB服务器响应请求并返回指定的URL数据,或错误信息,若设定重定向,则重新定向到新的URL地址;

6).浏览器下载数据后解析HTML源文件,解析的过程中实现对页面的排版,解析完成后在浏览器中显示基础页面;

7).分析页面中的超链接并显示在当前页面,重复以上过程直至无超链接需要发送,完成全部显示。

2.DOCTYPE声明的作用是什么,严格模式与混杂模式如何区分?

<!DOCTYPE>声明位于文档的最前面,处于<html>标签前,告知浏览器的解析器,用声明文档类型规范来解析这个文档。

在严格模式(标准模式)中,浏览器根据规范呈现页面;在混杂模式中,页面以向后兼容的方式显示,以防止老站点无法工作。

如果HTML文档包含形式完整的DOCTYPE,那么它一般以标准模式呈现,对于HTML4.01文档,包含严格DTD的DOCTYPE常常导致页面以标准模式呈现。DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。

3.介绍一下你对浏览器内核的理解?

主要分成两部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎。

渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。

JS引擎:解析和执行javascript来实现网页的动态效果。 最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。

3,.简要描述常见的浏览器内核

浏览器内核负责对网页语法的解释并显示网页,它决定了浏览器如何显示网页的内容以及页面的格式信息。

常见的浏览器内核有:Trident:IE; Gecko:Mozilla浏览器如firefox ; Webkit: safari浏览器,也是chrome浏览器的内核原型;Blink:Chrome浏览器,Opera浏览器

4.如何理解html标签语义化?

语义化的主要目的在于直观的认识标签和属性的用途和作用,可以概括为用正确的标签做正确的事情。

html语义化可以让页面的内容结构化,便于浏览器解析,便于搜索引擎解析,并提高代码的可维护度和可重用性。比如以结构化标签<header>、<section>、<footer>等来代替无语义的标签div.

5.锚点的作用是什么?如何创建

锚点是文档某行的一个记号,类似于书签,用于链接到文档中的某个位置。当定义锚点后,我们可以创建直接跳至该锚点的链接,这样试用装就无需不停的滚动页面来寻找他们需要的信息了。

在使用<a>元素创建锚点时,需要使用name属性为其命名,代码如下:

<a name="anchr">锚点</a>

然后创建链接,直接跳转到锚点,代码如下;

<a href="#anchr">回到锚点</a>

6.使用<label>元素显示文本与使用其他文本标记显示文本有什么不同?

<label>元素的直观效果是直接显示标记之间的文本,而且不会为文本呈现任何特殊效果,但是它和其他文本标记所不同的是,它是为鼠标用户改进了用户体验性。

这是因为它可以附带一个for属性,只要将该属性的值设置为表单中任何一个控件的id属性值,则当用户点击该标签(文本)时,浏览器就会自动将焦点转到和标签相关的表单控件上

7.列举常用的结构标记,并描述其作用

结构标记专门用于作为语义化的标签来标识页面中的不同结构,常用有:

<header>元素:用于定义文档的页眉; <nav>元素:用于定义页面的导航链接部分; <section>元素:用于定义文档中的节,标识文档中的一个具体组成部分;

<article>元素:常用于定义独立于文档的其他部分的内容; <footer>元素:常用于定义某区域的脚注信息;<aside>元素:常用于定义页面的一些额外组成部分,如广告栏、侧边栏和相关引用信息。

8.超级链接有哪些常见的表现形式?

1.普通超级链接,语法为:

 <a href="' target="">文本</a>

2.下载链接,即目标文档为下载资源,语法如:

<a href="day02.zip">下载</a>

3.电子邮件链接,用于链接到email,语法如:

<a href="mailto:perfectio@yeah.net">联系我</a>

4.空连接用于返回页面顶部如:

<a href="#">..</a>

5.链接到JavaScript以实现特定的代码功能如:

<a href="javascript:void(0)">不做反应</a>

<a href="javascript:...">JS功能</a>

9.简要描述行内元素和块级元素的区别

(1)行内元素有:a b span img input select strong(强调的语气)

(2)块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p

(3)常见的空元素: <br> <hr> <img> <input> <link> <meta>

鲜为人知的是: <area> <base> <col> <command> <embed> <keygen> <param> <source> <track> <wbr>

块级元素的前后都会自动换行,如同存在换行符一样,默认情况下,块级元素会独占一行

行内元素可以与其他行内元素位于同一行,在浏览器中显示时不会换行,对其不能设置高度和宽度。

还有一种称为行内块级元素,比如<img>、<input>等,可以和其他行内元素位于一行,且设置其高度和宽度

10.表单向服务器提交数据有几种方式,有什么区别?

将表单数据发送给服务器常用方式有两种:Get和Post。

浏览器发送给服务器的HTTP请求分为请求头(header)和请求主体(body)两部分,其中必须包含头部分,用于指定发送请求的方式、目的地以及其他关键信息;而主体是可选的,在头数据和主体数据之前用一个空白行来隔开。

两种方式的区别主要是发送数据方式不同,使用Get方式向服务器发送表单数据时,表单数据将附加在URL属性的末端;采用POST方法发送数据时,数据会防止在主体中发送

11.HTML5 为什么只需要写 <!DOCTYPE HTML>

HTML5 不基于 SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行);

而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。

12.页面导入样式时,使用link和@import有什么区别?

  (1)link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;
(2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
(3)import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;
(4)link支持使用js控制DOM去改变样式,而@import不支持;

13.HTML5的离线储存怎么使用,工作原理能不能解释一下?

在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件。

原理:HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示。

如何使用: 1、页面头部像下面一样加入一个manifest的属性;

2、在cache.manifest文件的编写离线存储的资源;

CACHE MANIFEST

#v0.11 CACHE:

js/app.js

css/style.css

NETWORK:

resourse/logo.png

FALLBACK: / /offline.html

3、在离线状态时,操作window.applicationCache进行需求实现。

14.浏览器是怎么对HTML5的离线储存资源进行管理和加载的呢?

在线的情况下,浏览器发现html头部有manifest属性,它会请求manifest文件,如果是第一次访问app,那么浏览器就会根据manifest文件的内容下载相应的资源并且进行离线存储。如果已经访问过app并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的manifest文件与旧的manifest文件,如果文件没有发生改变,就不做任何操作,如果文件改变了,那么就会重新下载文件中的资源并进行离线存储。 离线的情况下,浏览器就直接使用离线存储的资源。

15.请描述一下 cookies,sessionStorage 和 localStorage 的区别?

cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。

cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览器和服务器间来回传递。

sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。

存储大小: cookie数据大小不能超过4k。 sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

有期时间: localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据; sessionStorage 数据在当前浏览器窗口关闭后自动删除。 cookie 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。

16.iframe有那些缺点?

*iframe会阻塞主页面的Onload事件;

*搜索引擎的检索程序无法解读这种页面,不利于SEO;

*iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。

使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好是通过javascript 动态给iframe添加src属性值,这样可以绕开以上两个问题。

html面试题总结的更多相关文章

  1. .NET面试题系列[8] - 泛型

    “可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用.“ - Jon Skeet .NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] ...

  2. 关于面试题 Array.indexof() 方法的实现及思考

    这是我在面试大公司时碰到的一个笔试题,当时自己云里雾里的胡写了一番,回头也曾思考过,最终没实现也就不了了之了. 昨天看到有网友说面试中也碰到过这个问题,我就重新思考了这个问题的实现方法. 对于想进大公 ...

  3. 对Thoughtworks的有趣笔试题实践

    记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...

  4. 从阿里巴巴笔试题看Java加载顺序

    一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...

  5. JAVA面试题

    在这里我将收录我面试过程中遇到的一些好玩的面试题目 第一个面试题:ABC问题,有三个线程,工作的内容分别是打印出"A""B""C",需要做的 ...

  6. C++常考面试题汇总

    c++面试题 一 用简洁的语言描述 c++ 在 c 语言的基础上开发的一种面向对象编程的语言: 应用广泛: 支持多种编程范式,面向对象编程,泛型编程,和过程化编程:广泛应用于系统开发,引擎开发:支持类 ...

  7. .NET面试题系列[4] - C# 基础知识(2)

    2 类型转换 面试出现频率:主要考察装箱和拆箱.对于有笔试题的场合也可能会考一些基本的类型转换是否合法. 重要程度:10/10 CLR最重要的特性之一就是类型安全性.在运行时,CLR总是知道一个对象是 ...

  8. 我们公司的ASP.NET 笔试题,你觉得难度如何

    本套试题共8个题,主要考察C#面向对象基础,SQL和ASP.NET MVC基础知识. 第1-3题会使用到一个枚举类,其定义如下: public enum QuestionType { Text = , ...

  9. 我设计的ASP.NET笔试题,你会多少呢

    本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...

  10. 猫哥网络编程系列:详解 BAT 面试题

    从产品上线前的接口开发和调试,到上线后的 bug 定位.性能优化,网络编程知识贯穿着一个互联网产品的整个生命周期.不论你是前后端的开发岗位,还是 SQA.运维等其他技术岗位,掌握网络编程知识均是岗位的 ...

随机推荐

  1. jquery mobile header title左对齐 button右对齐

    <div data-theme="b" data-role="header" data-position="fixed"> &l ...

  2. Go语言之旅:基本类型

    原文地址:https://learn-linux.readthedocs.io 欢迎关注我们的公众号:小菜学编程 (coding-fan) Go 内置了以下基本类型: 布尔 bool 字符串 stri ...

  3. 嵌入式STM32开发环境之Keil5的安装(附资源)--

    全文copy,原文见https://blog.csdn.net/weixin_42602730/article/details/81007685 --------------------------- ...

  4. MySQL架构与引擎初识

    一.MySQL逻辑架构 1.连接层: 最上层是一些客户端和连接服务,所包含的服务并不是MySQL所独有的技术.它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安全性等等. 2.服 ...

  5. MySQL学习【第九篇存储引擎】

    一.存储引擎介绍 1.我们知道mysql程序构成由连接层,sql层,存储引擎层.存储引擎层和磁盘进行交互,由其去取数据,而我们取得数据是表的形式展现出来,谁做的呢?就是存储引擎结构化成表的形式返回给用 ...

  6. 课时87. !important(掌握)

    1.什么是important 作用:用于提升某个直接选中标签的选择器中的某个属性的优先级,可以将被指定的属性的优先级提升为最高. 注意点: 1.important只能用于直接选中,不能用于间接选中 p ...

  7. ElasticSearch优化系列二:机器设置(内存)

    预留一半内存给Lucene使用 一个常见的问题是配置堆太大.你有一个64 GB的机器,觉得JVM内存越大越好,想给Elasticsearch所有64 GB的内存. 当然,内存对于Elasticsear ...

  8. PHP程序员的技术成长规划 第三阶段:高级阶段

    第三阶段:高级阶段 (高级PHP程序员)重点:除了基本的LNMP程序,还能够在某个方向或领域有深入学习.(纵深维度发展)目标:除了能够完成基本的PHP业务开发,还能够解决大部分深入复杂的技术问题,并且 ...

  9. Delphi XE5的Android开发平台搭建

    Delphi XE5支持Android ARM的开发,可以在Android虚拟机里运行,因此建议将XE5安装在64bit的Windows,内存可以大于3GB Delphi XE5安装光盘中包含了最基本 ...

  10. ie的盒模型和标准模型

    使用 box-sizing:content-box || border-box || inherit 原理图 计算 怪异模型|IE模型 div宽度(定死) = 内容宽度+border宽度+paddin ...