阅读更多

2顶
0踩

Web前端

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

2012-03-26 18:10 by 正式编辑 sherry617 评论(4) 有4499人浏览
本文作者Bruce Lowson是Opera开放web标准的撰写人员之一,他希望通过本文与大家分享值得每个开发者关注的新兴Web技术(New Exciting Web Technology)。

1. WebGL

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

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

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




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

2. SVG

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

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

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



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

SVG最强大的特性是它基于矢量,这样您的插图,图形和UI图标等都是矢量图了,这样无论是在50英寸的电视屏还是手机屏幕桌面上,看上去感觉都是一样的清晰。在当今这样一个web应用无处不在的时代,SVG图形甚至可以包括媒体查询,可以是响应式的,也可以根据不同的目标设备做尺寸的调整。

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

Daniel Davis有一些SVG的介绍性资源,作者也推荐一本免费的电子书《Learn SVG》,您也可以看看《SVG or Canvas?Choosing Between the Two》来了解二者的区别。

3. getUserMedia

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

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

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

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

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



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

4. File APIs

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

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

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

您可以通过使用一个普通的<input type=”file”>开始,然后循序渐进地提高。HTML5 Drag&Drop支持特征检测,如果存在的话就使用<div>替换<input>,那就是您的drag图像目标了。当图像被drag到目标的时候,使用File Reader API来显示一个指甲盖大小的图像。您可以看一下Remy Sharp的demo

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

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

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

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

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

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

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

使用这种方式最令人欣慰的是:如果所有新特性在客户当前浏览器的升级版都能支持的情况下,Please API值建议访客对浏览器升级,而不是让访客单纯为了访问你这个页面而更换浏览器。效果图如下:



最后正如您所看到的,大量的令人惊喜的新技术正在接踵而至,在着手研究上述某项技术的时候恐怕又要担心更新鲜的技术到来了。希望你的开发过程愉快,并尽量让开发的应用在尽可能多的浏览器上进行测试。

Via netmagazine
  • 大小: 151.2 KB
  • 大小: 78.1 KB
  • 大小: 142.8 KB
  • 大小: 25.5 KB
来自: Web App Trend
2
0
评论 共 4 条 请登录后发表评论
4 楼 fjjiaboming 2012-03-27 12:59
IE就是屎.
3 楼 cenyebao 2012-03-27 09:25
这哥们估计经受过微软的“折磨”啊。。。
2 楼 cosmo1987 2012-03-27 09:21
引用
SVG(Scalable Vector Graphics)已经在Opera,Firefox,Chrome中存在多年了,但是直到IE9开始支持它之后才渐渐变得主流

IE想向大家证明,除非哥支持,否则再好的技术也别想成为主流!!
1 楼 fanlei77 2012-03-27 07:28
得出结论,ie10以前的ie就是坨屎啊。
话说ie7和ie8都更新了些什么?难道就是界面变一下,完善css2支持?我勒个去,我真想干死微软。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

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

    Bruce Lowson是Opera开放web标准的撰写人员之一,一些没有包含在HTML5之内的浏览器技术十分奇妙,包括WebGL和SVG,作者希望通过本文与共同爱好者们分享。 最近一位HTML5专家Rich Clark(作者的好朋友)为大家做了一...

  • 前端开发者应该关注的十个技术趋势

    作者 | technostacks译者 | 许学文审校 | 王强策划 | 闫园园前端开发是指通过编码和其他应用程序(如 HTML,CSS 和 JavaScript)为 Web 网站开发用户...

  • 微信web开发者工具无法打开的解决方法

    很多人和我一样开始对这个新兴的东西产生了兴趣,但许多人却遇到了这样一个问题,安装了之后,除了刚安装完可以自动打开后续无论是用快捷方式,还是跑到文件目录里,都无法打开这个磨人的小家伙其实解决这个问题很...

  • 开发者硬核:Web3 DApp 最佳编程实践指南

    本文作者郭宇,Checks Finance、CodeforDAO创始人,原文链接:https://guoyu.mirror.xyz/RD-xkpoxasAU7x5MIJmiCX4gll3Cs0pAd5iM258S1Ek自宣布进入创业间隔年以来,CodeforDAO(GitHub)与ChecksFinance(@checksfinance...

  • 值得开发者关注的5个新兴平台

    –从汽车到起居室,技术与市场都在迅速地尽最大的可能去为编程先锋们提供便利为用户服务! 在很久以前,作者跟朋友们共进午餐时畅想未来:如果能给自己的手机重新编程会是什么样?那时的心态和思维方式与现在是...

  • Pornhub Web 开发者访谈

    原文:Interview with a Pornhub Web Developer 译者:neal1991 welcome to star my articles-translator, providing you advanced articles translation. Any suggestion, please issue or contact me LICENSE: MIT...

  • 值得开发者关注的5个新兴智能平台(2)

    正在出现的开发平台No 2:智能家电! 因特网从人们的笔记本连上网的那天就开始主宰世界了,不过网络的光环当人们...开发者们对于起居室的进展最大的情况应该是Google开拓的路径,不过也局限于GooGle Tv box的应用了。L

  • 移动开发者如何理性地看待 Cordova、ReactNative、Flutter 等新兴技术

    随着大前端概念的持续升温,Web 开发技术替代原生移动开发似乎成了必然;Cordova、ReactNative、Weex、Flutter 等跨平台技术究竟是银弹还是焦油坑?我们在实际工作中如何在它们与原生技术之间取得平衡?本 Chat 将...

  • web前端主要技术概述

    本文主要是介绍部分主流和新兴的web前端技术,希望能帮助想学web前端的小白,理清其技术学习路线。 首先有些技能是web前端需要掌握的: 字符编码:解决乱码问题 HTTP协议:大体了解ajax请求的各种状态码代表的...

  • 一个web前端开发者的日常唠叨

    停更博客就意味着学习的越来越少,作为一个普通的前端开发者来说这是万万不可取的。近日入职了一家新公司,在上一家公司里只是草草的待了三个月,导致离职的原因有很多,这里就不赘述了;近日入职新公司,由于还没进...

  • 开发者:聚合型Web3.0应用将对时代产生颠覆作用

    市场上有远见的项目开始着手推出 PC 端和桌面钱包于一体的集成式应用,比如 NA(Nirvana)Chain 早前发布的 NaStation 桌面钱包,聚集了合并钱包、开发者商店、DApp商店、矿工管理、智能合约、去中心化服务器、去中心...

  • Web3:开源文化下的技术创新

    Web3:开源文化下的技术创新

  • 链上活跃度较高,Deeper Network从技术环境上利好Web3开发者

    国内最大的区块链技术开发者社区OneBlock+,在近日发布的2021年12月份月报中,列举了波卡公链上,活跃度较高的几大知名项目,Deeper Network名列其中。 我们都知道,活跃度高低,是评价一个底层技术系统的重要...

  • Web3安全风险令人生畏,应该如何应对?

    在一个典型的工作日,我会在一天的第一个...实话说,我知道 Web3 社区具有强大的凝聚力,但作为一名信息安全专业人士,我也对广泛的诈骗、“技术解决方案主义”的风险以及阻碍 Web3 崛起的大规模违法行为存有疑问。...

  • 网页在线封装App的新兴应用技术

    尽管传统意义上认为网页应用的用户体验不如原生App,但随着技术的进步,网页在线封装App的性能和用户体验正在得到显著提升。借助于先进的网页渲染引擎和优化的用户界面设计,这些封装后的App可以提供与原生App相媲美...

  • 优秀Web开发者必须知道的10件事

    开发者是创造数字世界的主力军,他们不应该只扮演编程工具的角色,而应该对开发工作有更高的要求。那么,开发者可以从哪些方面提高开发能力呢?下面我就谈一下我的想法。我的建议可能不全面,但希望能够给你带来一些...

  • 深度解读互联网新时代:Web3.0

    在这篇博文中,我们分9部分来介绍 Web3,同时配合一些实际的案例,以便大家在实践中更好地理解它们。

  • Web开发技术

    Web开发技术

  • web技术栈中不可或缺的Linux技术

    随着第三次信息浪潮的冲击,web技术在近年来可谓发生了天翻地覆的变革。从单向信息的web1.0时代,逐步过渡到信息和人交互的web2.0再到数据主动与人发生关系的web3.0时代,这些成就无疑归功于Web技术的迅速发展。  ...

Global site tag (gtag.js) - Google Analytics