北大青鸟

网站首页 > 新闻资讯 > 学校新闻 >

站内公告

开发者应该关注的五项Web新兴技术

责任编辑:宏鹏来源:武汉北大青鸟鲁广校区时间:2015-10-11 08:58:06
导读:武汉北大青鸟鲁广校区: 开发者应该关注的五项Web新兴技术 WebGL WebGL 是一种基于 Web 的 Graphic 库,由非盈利组织 Khronos 运营,目前结合 HTML5元素广泛应用在 3D 图形开发中。 学习 WebGL

武汉北大青鸟鲁广校区:开发者应该关注的五项Web新兴技术

WebGL

WebGL 是一种基于 Web 的 Graphic 库,由非盈利组织 Khronos 运营,目前结合 HTML5元素广泛应用在 3D 图形开发中。

学习 WebGL 比较困难,因为它是底层开发——它运行在 GPU 上面,而且它实际上是一个 OpenGL 的 JavaScript port,是一种游戏开发者使用的已经长期建立的 API 集。WebGL 的主要受众是哪些已经拥有丰富 OpenGL 经验的游戏开发者,他们可以通过 WebGL 为 web 平台编写游戏。

好在有很多资源可以帮助您学习 WebGL,这些资源不是关于游戏开发的,还有很多奇幻的图形、视觉和音乐视频等方面。作者个人比较的是:

◆ Introduction to WebGL。//dev.opera.com/articles/view/an-introduction-to-webgl/作者 Luz Caballero,简介可以获得的各种库。

◆ Raw WebGL 101。//dev.opera.com/articles/view/raw-webgl-part1-getting-started/适合那些不使用库的用户。

◆ Learning WebGL。//learningwebgl.com/一个非常好的引导网站。

◆ WebGL 101。//www.youtube.com/watch?v=me3BviH3nZc 一个由 Erik Moller 制作的介绍视频(2.5小时)。

◆ See Emberwind。//operasoftware.github.com/Emberwind/一个由 Erik Moller 做的 WebGL 游戏 port,您可以深入 Github 或看代码。

WebGL 目前在所有桌面浏览器(发布版和开发频道)中都支持,除了 IE10(微软表示不支持)。对于移动产品来说,已经在 Opera Mobile 12 中发布了,终会出现在 Android,BlackBerry Playbook 2.0,Nokia N900,SonyEricsson Xpertia Android Phones 等以及 Firefox 移动浏览器中。

SVG

SVG(Scalable Vector Graphics)已经在 Opera,Firefox,Chrome 中存在多年了,但是直到 IE9 开始支持它之后才渐渐变得主流一些它在 HTML5的光环下显得有点暗淡,尽管 SVG 和 HTML5是面向不用应用的不同工具。

Canvas2D 可以迅速 paint 图形到屏幕上面,这一点很犀利。但是其部功能就是 paint 了,没有内存来做那些(位置,顶层或其他)其他功能。如果您需要那种 book-keeping 工作,就只能自己用 JavaScript 实现,因为 Canvas2D 不会把 DOM 保存到内存中,也正因为如此 Canvas2D 速度快,十分适合人称射击类应用。

与 Canvas2D 不同,SVG 在您需要保存 DOM 的时候就给力了。使用 JavaScript,所有的 Objects 都可以移动并且与动画无关。您可以试试 Daniel Davis 做的复古类 SVG 游戏 Inbox Attack(//people.opera.com/danield/svg/inbox-attack.svg)来体验一下,并且看看源代码来了解如何完成动画效果。

因为 shape 和 path 是用 Markup 来描述的,所以他们可以用 CSS 来定型。与不同,text 在 SVG 中保持 text 格式并且更加的灵活,更加可扩展,更加易于访问。在 Canvas 中,text 变成了像素,就像 Photoshop 中的图形 text。

SVG 强大的特性是它基于矢量,这样您的插图,图形和 UI 图标等都是矢量图了,这样无论是在 50 英寸的电视屏还是手机屏幕桌面上,看上去感觉都是一样的清晰。在当今这样一个 web 应用无处不在的时代,SVG 图形甚至可以包括媒体查询(//my.opera.com/ODIN/blog/2009/10/12/how-media-queries-allow-you-to-optimize-svg-icons-for-several-sizes),可以是响应式的,可以根据不同的目标设备做尺寸的调整。

综上所述,在新的桌面浏览器中 SVG 已经能被广泛支持了。在移动产品方面的支持总体上来说也很好,以及预期在 Android 3.0 版本之前原生浏览器也会支持它了。

Daniel Davis 有一些 SVG 介绍性的资源(//my.opera.com/tagawa/blog/learning-svg),作者个人也一本免费的电子书:Learn SVG(//www.learnsvg.com/book-learnsvg/),您也可以看看《SVG or Canvas?Choosing Between the Two》(//dev.opera.com/articles/view/svg-or-canvas-choosing-between-the-two/)来了解二者的区别。

getUserMedia

不像那些被错误地称为 HTML5 的 API,getUserMeida(在下文中简写为 gUM)有个相对正当的理由:起初它是 HTML5元素,之后它改名了然后离开了 W3C WebRTC 规范集合。

gUM 允许访问用户的摄像头和麦克风,本来是在 WebRTC 规范中在浏览器中进行 P2P 视频会议的,当 gUM 拥有了其他的用途,就离开了 WebRTC。

摄像头的访问终在 Opera12 安卓版,Opera 桌面实验室和 Google Chrome Canary 里面实现了,不过 Opera 和 Chrome 都还没有实现麦克风的接入。

W3C 规范依然在用,所以 Opera 和 Webkit 有不同的语法规范,这样的麻烦被一个叫做 The gUM Shield(https://gist.github.com/f2ac64ed7fc467ccdfe3)的小 JavaScript 片段搞定了。如果您想更深入地了解这方面请看作者的另一篇文章:It’s Curtains for Marital Strife Thanks to getUserMedia(//html5doctor.com/getusermedia/)

当视频从设备开始流传输的时候,源数据可以被做成变成了元素,如果需要的话还可以被定为到屏幕外面,然后拷贝到里面进行所需要的操作。Paul Neave 写的《HTML5 变成玩具!》(//neave.com/webcam/html5/)为了方便操作把流媒体数据拷贝到 WebGL 中。作者在 .net 杂志的 226 话有采访他的报导(//www.netmagazine.com/shop/magazines/april-2012-226)。

如果想把 web app 的功能做得像 native app,gUM 需要做很多的工作。试了一下 Neaver 的 gum 和 WebGL 在 Opera Mobile 12 上面的 demo,感觉和平台独有的 app 一样富有响应式并且很时髦。当在浏览器产品中其功能被广泛应用的时候,作者语言会有很多基于 web 的 QR 代码阅读者以及很多增强现实的应用。

File APIs

W3C File APIs 允许 JavaScript 访问本地文件,其中常用的 API 是 FileReader,可以从 Opera,FireFox,IE10平台等的预览版看到(不包括 Safari)。

这一份 W3C 规范“为了在 web 应用中提供 API 来代表文件对象,以及编程选择和访问数据”。例如:你可以上传文件到浏览器中,并本地查找相关信息(例如文件名,尺寸,类型)而不需要到服务器端。您也可以打开文件,操作内容,这样可以加强基于浏览器的应用的交互性,用起来更像是本地应用。

另一个常用的用途是使传统的图像上传兑换狂更具有 Web2.0 特色:通过允许在浏览器内部的 Drag and Drop,而不是本地文件系统中改变。

您可以通过使用一个普通的开始,然后循序渐进地提高。HTML5 Drag&Drop 支持特征检测,如果存在的话就使用

替换,那就是您的 drag 图像目标了。当图像被 drag 到目标的时候,使用 File Reader API 来显示一个指甲盖大小的图像。您可以看一下 Remy Sharp 的 demo(//html5demos.com/file-api)。

还有很多写文件和操作文件系统的规范,不过这些对目前的跨浏览器应用来说还不太够:

W3C 文件 API:(//dev.opera.com/articles/view/the-w3c-file-api/)非常基础的介绍。

开发文件系统 API:(//www.html5rocks.com/en/tutorials/file/filesystem/)HTML5 Rocks 文章,(限 Chrome)。

Feature-detecting, progressive enhancement and upgrade messages(特征检测,渐进式增强和消息通知)

诚然,在没有那些奇幻的 API 的时候,大家总是试图使用渐进式增强和 HTML 语义的方法让网站照常工作。然而有时候却不能这样,例如 Paul Neaver 的《HTML5变成玩具》中,如果 gUM 和 WebGL 现在不存在的话,其网站不能有什么补救措施了,整个网站的核心都没了。

在这样的情况下有两种典型的惯例:要么是显示一条消息说“你的浏览器太垃圾了,塞油哪啦”或者说“你必须用 Chrome6/Firefox 4/Opera10等[插入能支持你应用的浏览器]才能访问”。种方法又没用又粗鲁,没有建议和补救措施;第二种方法是个临时办法,因为六个月之内所有浏览器可能都能支持你现在使用的技术了,让你在网站上留下的信息过时:例如您写的解决方案是建议使用 Firefox4 来访问,可是半年后用户安装着 Firefox7 回来访问你的页面了,这可就真的没救了。

如果您真的不能使用渐进式增强,那么就用新型的 HTML 5 Please API 吧(//api.html5please.com/)。这是 Jon Neal,Divya Manian 和其他几位大虾创作的。通过使用它,可以先查询 caniuse.com 然后返回一个新(能支持你的新特性的)的浏览器版本列表。

如果您已经做了一个需要 Canvas 或 WebSQL DB 技术的 DEMO 或者网站,恐怕你已经处在一个这样的尴尬境地了:您只是在告诉访问者们他们的浏览器不咋地。但是您不能只他们使用一个能支持这些特性的浏览器来补救,例如“找个支持 WebRTC 性能的浏览器再来吧”,这样对于大家都没啥效果。

HTML5 Please API 把开发人员的语言(和特性)翻译成用户能理解的语言(浏览器)。通过调用这个 API 你就可以得到一些 HTML 返回值来告诉访问者,或者返回一个带有相关数据的 JSON 对象(包括浏览器 Logo 及下载介绍等信息)。这样您可以根据不同的客户来显示不同的补救信息了。

本文标题:开发者应该关注的五项Web新兴技术,责任编辑:宏鹏,来源:武汉北大青鸟鲁广校区栏目,于2015-10-11 08:58:06发布于北大青鸟鲁广校区。武汉北大青鸟鲁广校区: 开发者应该关注的五项Web新兴技术 WebGL WebGL 是一种基于 Web 的 Graphic 库,由非盈利组织 Khronos 运营,目前结合 HTML5元素广泛应用在 3D 图形开发中。 学习 WebGL

专业老师指导

赵老师

赵老师

从事IT教育培训十年有余,致力于帮助广大学子找到适合自己的专业

立即在线咨询

培训咨询客服

陈老师

陈老师

IT培训专业客服,用自己的真诚解决了无数学子的困惑

立即在线咨询

本文地址:https://m.027hpedu.com/html/370.html

文章标题:开发者应该关注的五项Web新兴技术

上一篇:借助开源学习是有效的

下一篇:CRM发展趋势:从云端到社会化

热点关注

推荐学校新闻

热门学校新闻

预约你的精彩未来

预约将免费领取7天课程体验卡

-------请选择试预约课程-------

JAVA
WEB前端
PHP
UI设计
Python
电子商务
视频剪辑
大数据工程师
平面设计

83345人已领取

全国百余家校区

只为您方便就学

北大青鸟鲁广校区

北大青鸟鲁广校区

武汉市洪山区珞喻路724号(地铁二号线光谷广场站F口出)

预约到校
领取学习大礼包

首页

热门课程

视频网课

新闻资讯

关于学校

联系学校

预约选课申请

  • 预约时间

    请选择预约时间

  • 预约课程

    请选择预约课程

  • 姓   名
  • 手机号
  • QQ 号
  • 微信号

添加老师微信号

专业老师24小时1对1学习指导

定制专属于你的专属学习方案

微信号:17740513250

复制老师的微信号

复制成功啦

快去微信添加老师为好友吧~

北大青鸟小青

微信号:17740513250

北大青鸟小青

微信号:17740513250

设置备注
小主知道啦