Web浏览器中的HTML5:地理位置、JavaScript和HTML5附加

地理位置、网络工作者、历史操作、iFrame沙盒和其他HTML5规范为更安全、更智能的网络奠定了基础

聪明的经理们玩的一个狡猾的游戏是把他们当前的项目和一个巨大的、引人注目的、充满动力的、滚下山的焦油球联系起来。如今,HTML5在经历了10年的相对不感兴趣之后已经成为白热化,许多最初作为网络酷增强的想法正在紧随潮流。它们可能是相对独立的项目,但因为它们涉及JavaScript和HTML,所以它们现在是HTML5的一部分。

考虑一下新的JavaScript函数,如果代码运行在知道代码所在位置的设备上,这些函数可以让Web页面确定纬度和经度。无论HTML5是否成为一个流行词,所有地方的管理人员现在都觉得有必要添加到他们的幻灯片上,这些都是会发生的小改进。但现在,它们通常被认为与HTML5功能相同。

[同时在InfoWorld上:浏览器中的HTML5:画布、视频、音频和图形" | "浏览器中的HTML5:本地数据存储| "浏览器中的HTML5:HTML5数据通信" | "浏览器中的HTML5:HTML5表单”)

当我们把这一系列关于HTML5的文章放在一起时,许多小想法和特性最终都无处可逃。它们自然不适合其他关注以下领域的文章:HTML5表单,数据通信,本地数据存储,或者人们玩的游戏HTML5画布、视频和图形规格. 这些花絮中有些是HTML5标准的官方部分,有些只是同行,但它们很快就会出现在你的浏览器中。我们没有更好的地方放他们,所以他们在这里。

“HTML5”地理位置HTML5规范并未正式提供JavaScript层寻找设备地理位置的能力,但HTML5和地理位置同时发展,所以人们倾向于将二者混为一谈。地理定位标签在技术上是单独的API,如果你好奇的话。

这些功能非常基础,最初是为智能手机和pda设计的,但它们也在许多桌面浏览器中实现,包括Chrome 5.0和更高版本,Firefox 3.5和更高版本,以及Internet Explorer 9. 但是仅仅因为提供了JavaScript object navigator.geolocation,并不意味着返回的答案是可用的或正确的。幸运的是,API允许用户隐藏他们的位置,许多实现在向JavaScript代码显示地理位置对象之前都会请求用户的许可。API返回类型为PERMISSION_DENIED的错误,以表明用户不想合作。

一个好的特性包括对精度和坐标的粗略估计。高度有一个单独的误差范围,因为许多GPS工具对高度的估计不如对地球位置的估计准确。然而,纬度和经度的误差估计是相同的,可能是在两极附近的错误。

有两个主要函数:getCurrentPosition和watchPosition。第一个函数查找位置,第二个函数围绕流程进行循环,仅在发生更改时生成事件。虽然getCurrentPosition非常简单,但我仍然想知道为什么watchPosition没有一些参数来定义运动量d触发一个事件。只有一个参数,boolean EnableHighAccurance,“可能会或可能不会有区别,取决于您的硬件。”什么是高精度?这是一个好问题。因此,您可以在watchPosition中实现自己的循环。

对于台式机和笔记本电脑用户来说,这些细节大多是假设性的,即使他们使用的是具有此功能的浏览器。尽管台式机浏览器提供地理定位对象,但计算机通常不提供任何机制来猜测位置。有一些工具可以列出范围内的Wi-Fi路由器并使用识别纬度和经度的信息具有惊人的准确性,但这些信息在平板电脑和智能手机之外还没有流行起来。当设备无法自我定位时,API会生成一个位置信息。

HTML5网络工作者谁不想要一群小仆人在幕后工作,让一切都变得美好呢?当HTML5团队重新发现后台线程时,他们借用了这种空闲幻想的意象,并将其称为“Web Workers”。现在,所有我们使用JavaScript等待、延迟和暂停命令去访问遥远网站或页面上的动画精灵的hack都可以使用APL的疯狂符号去农场了。

jQuery库背后的天才John Resig称Web Workers是“最酷的新特性”。虽然使用本地应用程序的UI专家(已经知道线程很长时间了)会对这个让JavaScript跟上1990年左右应用程序编程的尝试嗤之以鼻,但这个特性相当新颖,肯定比一般的后台线程更华丽。这个网络工作者规范是HTML5文档的一部分。

与线程最大的不同是Web Workers对象在自己的沙箱中操作的方式;它们不能直接对Web页面或描述它的DOM做任何事情。Web Workers必须通过消息传递所有内容,并且Worker对象和dom级JavaScript都必须设置代码以跨缝隙发送和接收消息。这个模型对于每个试图围绕Web的客户机/服务器模型工作的人来说都很熟悉——把Web Workers想象成坐在您的客户机旁边的小服务器。

现在,除了Internet Explorer(包括IE9)之外,所有主要浏览器都支持Web工作者。

HTML5 iFrame几乎在所有情况下,网络上的进步都是以大胆的进步为标志的,新的特性使精彩的代码可以用更少、更简洁的行来编写<;iframe>;HTML5中的标签,这是一种罕见的失去某些功能的标签。不过,不要担心,或者开始感到幽闭恐惧症。该功能只是为了使iframe的集成更加无缝而移动。

过去,Web设计师可以在iframe中嵌入的内容中添加滚动条、边框和边距。现在所有这些工作都必须由iframe本身的HTML完成。编写iframe的Web设计师将不再具有这些选项。

那个设计师确实有一些新的选择。“无缝”属性删除任何边框和滚动条,使iframe像<;部门>;从另一个来源获取其信息的标记。

另一个选择将安抚那些担心网页安全的人。“sandbox”属性关闭了iframe中的许多更危险的特性。主页的作者需要通过添加“允许脚本”或“允许表单”等属性来显式启用它们

这些新的iframe属性是非常有用的特性,可以让网页设计者更容易地与其他网站协作,而不必担心危险的行为。创建更多互动活动的广告商会喜欢这些选项,因为他们让网站采用这些广告,同时提供足够的安全性来阻止任性行为。网站不需要像现在这样信任广告公司。

HTML5解析没有一个规范是完整的,因为甚至没有人能够开始想象有人将使用它的所有方式。多年来,浏览器程序员一次又一次地惊讶于HTML编写者发现了新的和意想不到的使用标记的方法。在最引人注目的案例中,HTML创建者发现了浏览器开发人员做出不同假设的地方。HTML5规范试图阐明这些地方并消除差异。

例如,WebKit浏览器过去允许使用最后一个斜杠“/>;”关闭自己的<;script>;标记。任何使用此类标记包含外部文件的人都会发现代码在WebKit世界中工作,但在其他浏览器中却不工作。在不同版本的浏览器。

这个HTML5解析规范包括浏览器用来确定远程Web服务器提供的编码的几十个步骤。对于如何处理<;table>;中的标记,还有大量令人惊讶的建议。我对此表示感谢,因为过去当一个浏览器除非我插入一个合适的<;tbody>;层,否则(这将保持匿名)不会起作用。

新规则有数百种不同的方式来统一浏览器,几乎所有这些方式都很小,但偶尔会让人发狂。很难列出或测试所有这些方式。其中一个更显著的变化是,MathXML和SVG文件现在可以这样内嵌:

换句话说,MathML和SVG现在几乎是常规HTML的一部分,除了在较旧的浏览器上,所有这些浏览器都必须在一段时间内得到显式支持。

这些增强中有许多超出了真正的次要增强。一些所谓的文本级别的语义增强就像微格式为在文本中浮动的标准数据元素而设计。例如,& lt; abbr>标签将标记所有的TLAs(三个字母的首字母缩写),并允许您嵌入完整的定义,以防任何人好奇。

HTML5历史API谁不想改写历史?新的HTML5历史对象提供了有限数量的方法来干预浏览器的历史记录。您不能大刀阔斧地更改不同站点的条目,但可以添加新页面并从当前站点重写条目。

例如,如果您碰巧点击了N一个站点上前1000个列表的页面,并为广告销售部门生成1000个页面视图,您将在历史记录中得到1000个不同的条目。如果你想在幻灯片放映前返回页面,你需要费力地浏览1000条条目。JavaScript对历史的操作可以使您免于这个麻烦。

这样做的主要效果是让导航更流畅,更易于实验。规范草案鼓励开发人员考虑“非线性”解决方案,同时建议他们使用新发现的能力,以避免可能造成的混乱。重写历史可能会让用户感到烦恼,如果使用错误的方式,甚至会有危险,但它也有助于清除历史对象过于字面化的许多丑陋之处。

HTML5撤销历史记录这些新功能中的许多都将浏览器从一个以矩形显示远处文件的应用程序转变为一个允许用户交互和更改矩形内对象的应用程序。当人们更改数据时,他们经常会犯错误,并希望撤销更改。这就是撤消事务历史记录然后UndoManager对象进入。

最终出现在“撤消事务历史记录”列表中的事件的主要来源是表单输入框的更改。允许JavaScript程序员访问UndoManager可以定制这种交互并生成更复杂的表单。

HTML5布局增强至少就原始功能而言,HTML5最大的新发展之一是添加大量标记文档不同部分的标签。虽然最初的HTML提供了标记文档结构中重要部分的开始和结束的标签,但是在标题之外的标签并不多。通过<h6>)和段落(<p>)标记。其余的则主要用于印刷符号,如粗体(<b>)和斜体(<i>)。

许多新的布局标签识别Web开发人员自己构建的内容。现在有这样的标签<;收割台>;<;页脚>;它告诉浏览器将哪些信息放在页面的顶部和底部。其中一些会增加混乱。这个<;第节>;例如,标记的操作与<;部门>;标记,因此会有人使用<;部门>;其他人使用的地方<;第节>;反之亦然。

所有主流浏览器都支持许多基本元素,但许多似乎不那么明显有用的元素却不能这么说。在这一刻,& lt; figure>用于将可移动图形附加到文本部分的标签在Firefox 4.0中有效,但在Safari中无效。这个& lt; ruby>用于注释亚洲符号的标记类似于Safari,但不适用于Firefox。

在这里说标记“受支持”并不像其他HTML5特性那样简单——语义需要更多的规范。写下存储数据的要求是一回事,但指定浏览器在布局文本块时应该做什么又是另一回事。即使在浏览器开始识别这些标记之后,浏览器也可能会选择以稍微不同的方式显示标记中的信息。

相关的:
1.2. 第1页
第1页,共2页
资讯科技薪酬调查:结果是令人满意的