面试问:AJAX+ML+DTD概念

课程大纲

  • (1)ajax简介
  • (2)XML简介
  • (3)SGML简介
  • (4)DTD简介
  • (5)HTML与DTD
  • (6)为什么需要DTD声明?
  • (7)DTD作用
  • (8)标准模式(strict mode)和怪异模式(quirks mode)
  • (9)HTML5文档声明
  • (10)什么是 XHTML?
  • (11)XHTML对比HTML
  • (12)对比GML、SGML、HTML、XML、XHTML、HTML5

ajax简介

  • (1)什么是ajax?
    • ajax 的全称是Asynchronous JavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式。
    • AJAX代表异步JavaScript和XML,它是一组web开发技术,允许web应用程序异步工作,在后台处理对服务器的任何请求等等,那么什么是AJAX?
    • JavaScript是一种流行的编码语言,在其功能中,JavaScript管理网站的动态内容并允许用户进行交互。(XML是HTML等标记语言的另一种变体),其名称为可扩展标记语言。如果HTML是用来显示数据的,那么XML就是用来包含和携带数据的。
    • JavaScript和XML在AJAX中都是异步工作的,因此,任何使用AJAX的web应用程序都可以从服务器发送和检索数据,而不需要重新加载整个页面。

XML简介

  • (2)什么是XML?
    • XML是 EXtensible Markup Language(可扩展标识语言)的简写。
    • XML和HTML(Hypertext Markup Language 超文本标记语言)一样,同样来源于SGML。
  • XML与HTML区别:
    • XML 不是 HTML替代者,只是HTML补充,它的用途完全不同.XML并不是标记语言。它只是用来创造标记的语言,XML中的标签不像HTML中的标签是预定义的,是需要自己定义的,如HTML中table ,body,等这些标签是预定义的,而XML中则完全由自己来定义这些标签。
  • 用途:
    • 1、HTML 是将数据和显示格式混合在一起的,是用于以人可直接阅读的格式显示数据。如在body,table等这些标签中显示数据,在HTML 中,只能使用这个有限的标签集,因此可显示的信息类型也是有限的。
    • 2、XML是用来描述、存储和交换数据的,不包含任何的显示格式的信息,因此它与数据库功能类似

SGML简介

  • (3)SGML是什么?
    • SGML是指“标准通用标记语言”(Standard Generalized Markup Language),是1986年出版发布的一个信息管理方面的国际标准(ISO 8879),它是国际上定义电子文件结构和内容描述的标准,是一种非常复杂的文档的结构,主要用于大量高度结构化数据的防卫区和其他各种工业领域,利于分类和索引。
    • SGML规定了在文档中嵌入描述标记的标准格式,指定了描述文档结构的标准方法,目前在WEB上使用的HTML格式便是使用固定标签集的一种SGML文档。即HTML可以视为SGML的子集
    • SGML是一种在Web发明之前就早已存在的用标记来描述文档资料的通用语言。但SGML十分庞大且难于学习和使用。鉴于此,人们提出了HTML语言
    • 但SGML太庞大了,学用两难尚且不说,就是全面实现SGML的浏览器也非常困难。于是Web标准化组织W3C建议使用一种精简的SGML版本——XML。SGML是XML的前身,由于SGML难理解浏览器支持差等原因被放弃,XML和HTML都基于SGML。SGML的DTD作为标准被固定下来

DTD简介

  • (4)什么是DTD?
    • DTD:文档类型定义(Document Type Definition)是一套关于标记符的语法规则。中文意思为“文档类定义”。
  • DTD肩负着两重任务:
    • 一方面它帮助你编写合法的代码,另一方面它让浏览器正确地显示器代码。如果说你没有使用DTD,你将很难预测浏览器是怎样显示你的代码,仅仅在同一浏览器就有不同的显示效果。尽管你的网页做得非常飘亮,要是没有使用DTD,你的努力也是白费的。因此,一个DTD是必不可少的。

HTML与DTD

  • HTML与DTD:
    • 1、DTD 是一套关于标记符的语法规则。它是XML1.0版规格得一部分,是html文件的验证机制,DTD属于html文件组成的一部分。
    • 2、DTD:三种文档类型:S(Strict)、T(Transitional)、F(Frameset)。
      • ①Strict:如果您需要干净的标记,免于表现层的混乱,请使用此类型。请与层叠样(CSS)配合使用
      • ②Transitional:DTD 可包含 W3C 所期望移入样式表的呈现属性和元素。如果您的读者使用了不支持层叠样式表(CSS)的浏览器以至于您不得不使用 HTML 的呈现特性时使用
      • ③Frameset: DTD 应当被用于带有框架的文档。除 frameset 元素取代了 body 元素之外,Frameset DTD等同于 Transitional DTD
  • (5)HTML网页模版/DTD有三种类型
    • 第一种:HTML 4.01 Strict DTD(严格的文档类定义)
      • Strict严格型:在这种XHTML中,结构中不能出现格式或表现的内容:格式标记:<font>、<b>、color属性、background属性
      • 这种类型下,在<body>中只有结构标记,不能出现任何的表现的内容。 对于使用了这类DTD的文档,使用如下文档声明:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"   "http://www.w3.org/TR/html4/strict.dtd"> 
  • 第二种:HTML 4.01 TransitionalDTD(过渡的文档类定义)
    • Transitional过渡型:在这种XHTML中,结构中可以出现格式标记或表现(CSS)的内容:(用的最多)
    • 能包含已过时的元素和属性但不能包含框架元素。对于使用了这类DTD的文档,使用如下文档声明:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  • 第三种:HTML 4.01 FramesetDTD(框架集文档类定义)
  • Frameset框架型:在这种XHTML中,可以使用框架技术,实现多个网页在一个浏览器窗口中呈现,
  • <body><frameset>不能同时使用,只能二选一
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

DTD与标准怪异模式

  • (6)为什么需要DTD声明?
    • 到目前为止,只是在说DTD作用,那如果不写会怎么样?在开发项目里到底起到了什么作用呢?这里需要引入两个新概念。
  • 标准模式和怪异模式:
    • 要想写出跨浏览器的CSS,必须知道浏览器解析CSS的两种模式:标准模式(strict mode)和怪异模式(quirks mode)。
  • (7)为什么需要DTD声明?
    • 1、标准模式是指浏览器按W3C标准解析执行代码;
    • 2、怪异模式则是使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以我们称之为怪异模式。
    • 浏览器解析时到底使用标准模式还是怪异模式,与你网页中的DTD声明直接相关,DTD声明定义了标准文档的类型(标准模式解析)文档类型,会使浏览器使用相应的方式加载网页并显示,忽略DTD声明,将使网页进入怪异模式(quirks mode)。
  • 如果网页代码不含有任何声明,那么浏览器就会采用怪异模式解析如下图:
    在这里插入图片描述
  • 如果网页代码含有DTD声明,浏览器就会按所声明的标准解析
    上述代码,浏览器会按HTML 4.01的标准进行解析如下图:

    在这里插入图片描述

标准模式VS怪异模式

  • (8)标准模式和怪异模式
    • 声明DTD后的标准模式下,IE6不认识!important声明,IE7、IE8、Firefox、Chrome等浏览器认识;
    • 而在未声明DTD的怪异模式中,IE6/7/8都不认识!important声明,这只是区别的一种,还有很多其它区别。
    • 所以,要想写出跨浏览器CSS,最好采用标准模式,即声明DTD模式。
  • 如何获取判定现在是标准模式还是怪异模式?
  • (1)原生JS法
alert(window.top.document.compatMode) ;
1、BackCompat  表示怪异模式
2、CSS1Compat  表示标准模式
  • (2)jQuery法
    jQuery.boxModel在绝大多数浏览器中返回true,在IE浏览器的怪癖模式中返回false
1.8 之前(不含1.8)的 jQuery 版本---$.boxModel 
1.8之后版本---$.support.boxModel 

H5文档声明

  • (9)HTML5文档声明

    • 到H5 时,文档声明语法为<!DOCTYPE html>,该声明并不是HTML标记。它是向web浏览器发送关于写入页面的HTML版本的指令
  • 【H4对比H5】:

    • 1、在HTML 4.01中,< !DOCTYPE>声明引用DTD,因为HTML 4.01基于SGML。
      DTD指定了标记语言的规则,以便浏览器正确地呈现内容。
    • 2、 HTML5 不基于 SGML,所以就不需要对 DTD 引用,但需要 DOCTYPE来规范浏览器行为。
  • (9)HTML5文档声明小结

    • 1、在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。
    • 2、DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。
    • 3、HTML5 不基于 SGML,所以不需要引用 DTD,因此没有声明DTD。

XHTML

  • (10)什么是 XHTML?
    • 官方描述:可扩展超文本标记语言(英语:eXtensible HyperText MarkupLanguage),是一种标记语言,表现方式与超文本标记语言(HTML)类似,不过语法上更加严格
    • 通俗理解:XHTML 是以 XML 格式编写的 HTML。
  • 【背景】:
    • HTML是一种基本的WEB网页设计语言,XHTML是一个基于可扩展标记语言的标记语言,看起来与HTML有些相象,只有一些小的但重要的区别,XHTML就是一个扮演着类似HTML的角色的可扩展标记语言(XML),所以,本质上说,XHTML是一个过渡技术,结合了部分XML的强大功能及大多数HTML的简单特性。
    • XML是可扩展标记语言,用于描绘封装数据,而HTML超文本标记语言用于展示数据,XHTML就是用XML规则规范的HTML,由于XML语法严格,因此,XHTML要求
      在这里插入图片描述
  • (11)XHTML对比HTML
    • 书写习惯区别
      1、HTML标签不区分大小写XHTML所有标签都必须小写
      2、XHTML标签必须成双成对.
      3、html对标签顺序要求不严格,XHTML标签顺序必须正确
  • 总而言之xhtml比html更加规范。

ML置标语言

  • (12)对比GML、SGML、HTML、XML、XHTML、HTML5
    • 从这五者的名字中,我们都可以看到 “ML” 这两个字母,所以先从 ML说起。ML即 Markup
      == language置标语言==。根据维基百科的解释,Markup language是用标准的标记来解释纯文本文档的内容,从而提供关于文档结构或文档该如何渲染的信息。置标语言的发展可以用下图来表示:
      在这里插入图片描述
  • 1、GML 是第一代置标语言,使文档能明确将标示和内容分开,所以文件使用同样的标示方法。
  • 2、SGML 在 GML 的基础上进行整理,形成了一套非常严谨的文件描述方法。它的组成包括语法定义,DTD,文件实例三部分。SGML因太严谨规范达500多页,故而不易学、不易用、难以实现,所以在它的基础上又发展出了其他的更易用的置标语言。
  • 3、HTML 是人们抽取了 SGML 的一个微小子集而提取出来的。其早期规范比较松散,但比较易学。
  • 4、XML 也是 SGML 的一个子集,但使用比较严格的模式。
  • 5、XHTML 的出现是因为HTML扩充性不好,内容的表现跟不上时代的变化(如无法表示某些化学符号等),以及因为性能的问题,官方逐渐趋于严格的模式,所以使用 XML 的严格规则的 XHTML 成了 W3C 计划中 HTML 的替代者。
  • 6、HTML 经过一系列修订,到现在说的 HTML 一般指 HTML 4.01;而现在的 HTML 5 则是 HTML 的第五个修订版,其主要的目标是将互联网语义化,以便更好地被人类和机器阅读,并同时提供更好地支持各种媒体的嵌入。而HTML5本身并非技术,而是标准。
  • 它所使用的技术早已很成熟,国内通常所说的html5实际上是html与css3及JavaScriptapi等的一个组合,大概可以用以下公式说明:HTML5≈HTML+CSS3+JavaScript+API.

完毕…有问题留言小编…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章