13 款 JavaScript 模板引擎

JavaScript 在生成各种页面内容时如果能结合一些模板技术,可以让逻辑和数据之间更加清晰,本文介绍 X 款 JavaScript 的模板引擎。(排名不分先后顺序)

1. Mustache

基于javascript 实现的模板引擎,类似于 Microsoft’s jQuery template plugin,但更简单易用!

2. EasyTemplate

在使用过Freemarker模板后,感觉它的 语法比较朴实,平易近人,容易上手,于是决定按它的语法风格实现一个前端的 模板引擎,这就有了下面的EasyTemplate! EasyTemplate模板的函数大小为1.34k(未压缩),暂时只实现了 list,list index,if elseif else等功能,应该可以满足大部分的使用需求了。 EasyTemplate模板 引擎的解析速度测试,渲染1000行数据,在不同的浏览器中,平均速度大约在30豪秒以内(测试机器性能较弱)。

3. jSmart

jSmart 是著名的 PHP 模板引擎 Smarty 的 JavaScript 移植版本。

4. Trimpath

Trimpath JavaScript 是个轻量级的,基于JavaScript的,跨浏览器,采用APL/GPL开放源代码协议的,可以让你轻松进行基于模板编程方式的纯JS引擎。新浪的评论系统使用的就是此模板。

5. jade

Jade是受Haml的影响以JavaScript实现用于node的高性能模板引擎。

6. Hogan.js

来自 Twitter 的 JavaScript 模板引擎。

7. Handlebars

Handlebars 是一个 JavaScript 的页面模板库

Javascript-280 in Useful JavaScript and jQuery Tools, Libraries, Plugins

8. doT.js

doT.js 包含为浏览器和Node.js 准备的 JavaScript 模板引擎。

9. dom.js

dom.js 是一款可用在客户端和服务器端的 JavaScript 模板引擎

10. Plates.js

Plates.js 是一个轻量级、无逻辑、DSL 的 JavaScript 模板引擎。

11. ICanHaz.js

ICanHaz.js 是一个简单而且功能强大的客户端的 JavaScript 模板引擎。

12. dotpl-js

Dotpl-JS 是一个纯javascript模板引擎,支持IF和FOR关键字,多循环衔套及字段渲染,跨浏览器支持。是一个实用的javascipt工具,页面静态化利器!

13. EJS

EJS 可以将数据和模板合并然后生成 HTML 文本。

应用商店是否应该提供官方杀毒服务?

Google 刚刚从自己的 Play 市场上移除了至少 15 款 Android 应用程序,它们被证明含有恶意木马——偷偷扫描用户的联系人,并把其中的姓名,电话,邮件地址等隐私信息上传到远程服务器。

事情的起因是 4 月 12 号日本网站上发布的截图和恶意代码片段,作者提醒用户在安装应用程序前要留个心眼,以防自己的信息被泄露。

20120412222936

(代码片段请点击这里

消息传开后,来自安全公司 McAfee 的开发者 Carlos Castillo 也发现了类似的恶意木马。它们伪装成媒体播放器或是游戏,然后常驻在 Android 系统的后台,并在用户毫无察觉的情况下获取和上传用户的联系人信息。

android_data_leakage-4f88b10-intro-thumb-640xauto-32809

(图片来自 arstechnica

这已经不是 Google Play 商店第一次遭遇木马危机了,官方发言人原本拒绝对此发表评论,但随后 Google 选择了让可疑的程序下架。

说到这里,你或许还能联想到两个月前的“Path 事件”,当时新加坡的开发者 Arun Thampi 发现 iPhone 版 Path 会偷偷扫描并上传用户联系人,包括姓名,邮件和电话号码等隐私信息。而这一切也是在用户不知情的情况下发生的。

Path 开发团队不得不发布临时版本来修正这个“错误”,这还牵出了苹果跟美国国会之间的对话。最终苹果承诺:“未经用户明确许可就收集或传输用户地址簿数据的应 用违反了我们的方针。我们正努力让情况对用户来说变得更好。未来软件更新后,所有希望访问联系人数据的应用都必须取得用户的明确授权。”

问题是,应用商店的管理者是否应该为“木马”程序负责?是否能提供官方的杀毒服务?

都说“信心比黄金更重要”,Google 和苹果所面临的困难都差不多——如何在保证商店自由环境的前提下,最大程度给消费者信心。

Google 既然能够从 Play 商店中大批量地移除程序,说明他们至少具备了发现恶意木马的能力(在审核的时候扫描 API 能大概知道一些)。同时,也应该把这种能力用来强化消费者信心。

就好比沃尔玛要给消费者一个承诺:在我们这儿不会买到变质的牛肉。

当然,这个“杀毒服务”能不能变成商店管理者的基本义务,恐怕还是要看用户的呼声。毕竟要监控几十万款程序,所花费的人力不是小数目。随着生态环境的日趋成熟,是该提出我们的要求了!

题图来自 blogspot

安全人员发现新的OS X特洛伊木马

今早苹果放出新的Flashback恶意软件移除工具来移除此前威胁了几十万Mac系统安全的Flashback恶意软件。但是根据安全公司Sophos 的最新报道,他们发现了一种新的特洛伊木马病毒——Sabpab,它同样也是利用OS XJava插件内的漏洞来感染Mac。

该木马病毒感染系统的过程并不需要用户的参与,和Flashback一样,用户只要访问了某个被感染的网站,那么其系统就会被这种病毒感染。

Sophos高级技术顾问Graham Cluley表示:从许多方面来说,新发现的Sabpab恶意软件是一种后门特洛伊木马。它使用HTTP来链接 到控制服务器,接收远程黑客发出的指令。当对Mac进行攻击时,可以截图被感染的Mac,上传和下载文件并执行远程指令。

如果Mac用户已经下载了最新的Java更新,那么这个新发现的恶意软件不会对你的系统造成威胁,而且大部分Mac杀毒软件也能够应对Sabpab。

文/威锋网

在路边摊用iPhone刷信用卡 安全谁保证?

在美国,若你在路边小摊贩那买东西,结帐时老板拿出iPhone,在耳机孔插上一个四四方方的白色盒子,告诉你可以“刷卡”,可千万不要“土鳖”的以看外星人的眼光看他。Square的移动支付服务,正在为数以百万计的美国小企业或个人用户服务。而且它不需要审核资本、信用纪录、会计师…等信用卡服务常见的门槛条件,一切的数据都“无纸化”,直接从Square的App上管理,而消费者也能直接从智能终端上收到消费信息。

Square iPhone
最新潮的刷卡方式

Square的技术实现很聪明。这个四四方方的读卡器把信用卡磁条的信息转换成音频,然后iPhone/Android 的Square应用会把音频再转换成数字信息,然后把这些付款信息用加密的方式传输到网络服务器端,服务器端然后返回刷卡是否成功的信息。

Square iPhone
Square在美国提供的新颖支付方法

共同创办人暨执行长Jack Dorcy谈到如何想到帮助小店家建立信用卡支付服务的原因很简单,他自己也曾是小额支付的需求者之一。过去,Dorcy的母亲曾开过一家咖啡店,他则在店里帮忙,但附近新开一家星巴克可以刷卡后,生意一落千丈,最后只好把店关张。仅管母亲认为关店与此无关,Dorcy却显然从未释怀。当Square一脚踏进这个一向只有大商家才玩得起的移动支付领域时,不少人听了嗤之以鼻。但现在这颗移动支付新星,每年处理的交易量已达30亿美元,而成长曲线完全没有放缓的趋势。

Square iPhone
读卡器把信用卡磁条的信息转换成音频通过互联网上传到服务器

快捷支付领域充满了机会,面对国内繁荣的淘宝交易,线下二手市场,同样对快捷、方便的支付手段有着巨大的需求,Square 这类产品与笨重的读卡器相比,有着天然的优势,只要成本足够低,银监会又能放开小额支付平台的限制、似乎大有可为。

苹果将推全新编写工具方便非编程人员开发APP

北京时间4月14日消息,据国外媒体报道,苹果在未来将推出一款全新的数字内容编写工具,从而使得那些不具备编程能力的用户也可能轻松的为iPhone和iPad编写自己的iOS应用。

本周,美国专利商标局公布了苹果近期提交的一项专利申请,该专利显示出苹果已致力于将iOS的开发变得更加简单。该专利的名称叫做《设备平台上的内容配置(Content Configuration for Device Platforms)》,描述了一种新的编写工具,允许用户可以创建APP而不需要理解或编写程序代码。

这份专利申请上写到,计算机编程语言实际上“妨碍了用户进行内容制造”,因为许多内容制造者和设计人员都不具备技术方面的背景,更无法进行计算机编程。

以往,这一问题可以用一种“所见即所得”的软件来解决,这是一种可以开发软件的图形用户界面工具,比如说网页开发工具。但是苹果表示,虽然这些工具可以帮助用户进行内容创作,但是它们的功能非常有限,而且通常需要用户亲自动手编写类似于CSS这样的代码。

不仅如此,苹果还在专利申请中表示,目前业界的编写工具对于那些没有编程经验的用户而言使用起来非常困难,这使得他们的内容不能以一种最优的方式在多种屏幕上呈现出来。目前,虽然iOS应用可以运行在iPhone或iPad,或者兼容两种设备,但是苹果在此次专利申请中还谈到了在不同分辨率的多种屏幕(比如说电视和电脑)上呈现这些内容的可能性。

该专利写到,“因为不同的设备拥有不同的功能,现在的内容必须编写多次,才能适用于多种不同的设备。这给内容的创造和分发造成了新的阻碍。”

 

苹果将推全新编写工具方便非编程人员开发APP

 

创建手机应用的过程将会被简化。通过选择模板,并在模板中加入功能,用户就可以创建他们自己的iOS应用、网页或者广告。(腾讯科技配图)

苹果表示,目前业界对这一问题的解决方案是采用了一种所谓“最小公分母”的办法,通过对内容进行转换从而适用于所有移动设备。虽然这种方法使得移动设备上所呈现的内容得到了一定增强,但是远没有达到最好。

为此,苹果提出了一种全新的图形软件创建工具来解决这一系列难题。通过使用这种工具,不懂技术的用户也可以编写出具有动态操作功能的APP,而不用编写任何代码。

该专利申请中写到,“每一项动态功能都可以被用户的动作所控制,而这些动作将按照时间轴的顺序进行执行。通过将动作同时间轴关联起来,那些基于动作的动态功能可以更方便的呈现出来。”

苹果所描述的这一数字内容编写工具适用于业余和专业的内容开发者。那些编程经验不足的用户可以轻易的绕过编码的烦琐步骤编写自己的APP,而那些经验丰富的编程人员依然可以选择亲自编写代码的方式。

该编写工具还适用于那些硬件性能各异的苹果电子设备,用户只需一次编写就可以兼容多种不同的屏幕和清晰度。

该编写工具在图形用户界面层和后台代码层直接加入了一个额外的抽象层。这样做使得用户在调整图形用户界面时,代码层中的变量可以相应改变,但不需要用户亲自去修改代码。

 

苹果将推全新编写工具方便非编程人员开发APP

 

苹果所描述的数字内容编写工具适用于业余和专业的内容开发者。那些经验较少的开发人员不再需要理解和编写繁琐的代码,但对专业的程序员而言该工具仍然保留了可以进行编码的功能。(腾讯科技配图)

苹果的这一解决方案可能还得依赖于JavaScript库,才能实现额外的功能。这使得该编写工具可以包含实现对象的替代方案,甚至还可以应用到行为控制和错误处理方面。

该专利申请中写到,“该编写工具还将利用于运行在后台的JavaScript库来增强代码的功能,自动编写额外的代码,从而使得代码中所定义的对象功能更加顺畅,即使这些对象已经在不同的设备中实现了。”

“用户使用这一编写工具后,JavaScript库将对代码中的对象进行实例化,并按需生成额外的代码(HTML/CSS/JavaScript),从而对内容进行呈现。这使得该编写工具可以适用于不同的情况,比如说需要开发运行在多个不同设备的APP。”

例如,该JavaScript库可以决定一个应用中的哪个功能不支持某种设备。苹果的这一专利申请还展示了一些同设备图形处理器无关的功能,比如说阴影、渐变色和反光。

这一专利申请大部分的内容都是描述如何制作和呈现广告内容,里面还提及了iAd。通过使用该编写工具,那些没有编程经验的用户也可以为苹果iAd广告平台创造自己的广告内容。

除此之外,该编写工具的外观同苹果在Mac上的iAd开发工具类似。然而,这一全新的工具适用于任何数字内容编写,而不仅仅是广告。

这份专利申请中还展示了一些可以用该编写工具开发的软件,比如说三连棋游戏(tic tac toe)、咖啡店菜单,以及一个可以购买《美国偶像》视频的应用。

 

 

苹果将推全新编写工具方便非编程人员开发APP

 

如图所示,该工具的设计风格看上去同苹果Mac上iAd的开发工具类似,但是这一工具适用于任何类型的数字内容编写,而不仅仅是广告。(腾讯科技配图)

创建这些应用可能会变得越来越简单,因为用户可以直接选择所需创建APP的模板。之后,他们可以往模板里面添加各种功能,从而创建其自己的APP、网页或者广告。

该专利申请建议,苹果这一全新的iOS软件开发工具对小公司而言非常有用,特别是在他们需要创建一款自己的APP时。在专利申请中,还介绍了一家名叫“The Legends of Rib”的餐厅已经创建了一款可以在iPhone上使用的互动菜单应用。

苹果的这一专利总共72页,已于2011年12月向美国专利和商标局提起申请。专利提交人为吉纳维芙-杰拉德(Genevieve Garand)、史蒂夫-爱德华-马蒙(Steve Edward Marmon)、拉尔夫-扎祖拉(Ralph Zazula)和迈克尔-保罗-斯特恩(Michael Paul Stern)。

文/腾讯科技