前言:
与其说是教程,这个系列不如说是对javascript的一些介绍,
自己摸爬滚打零散学了点js,不是很系统,更多是一些小tips的东西,希望能给对js还不了解的人做个入门介绍,
当然,我本身水平不高,欢迎大家帮我指出缺漏,共同探讨,共同进步
正文:
一、对js的现状的一些介绍:
js这几年几乎真正完成了“一次书写,到处运行”的愿望①,前端html+css+js打天下,数据库有mongodb撑场面,服务器有nodejs,想手机端跨平台运行有phonegap,pc端有node-webkit. 甚至非js语系的可以将c++,ruby等熟悉的语言,通过Emscripten编译为js②.这些扩展这文里不多介绍
二、原生桌面应用实际上手:
linux和windows其实对js都有原生支持,
Ubuntu或其他常见linux下,你如果想用js做一个本地应用,可以参考gnome javascript③,
由于我们标题就是js在windows下面的开发,所以我们的重心还是在win系统上
最简单的一个实践,右键新建一个txt文件,直接用记事本敲入以下代码
1 <script> 2 alert("你好:)") 3 </script>
然后保存,重命名为XXX.hta,双击一下看看效果
xp,win7,win8上均可以运行,这个例子告诉我们,微软也是很进步的嘛
在<hta>标签中可以设置很多属性,类似窗口边框有无,这里我找了一个官网的例子
<HTML> <HEAD> <TITLE>HTA Demo</TITLE> <HTA:APPLICATION ID="oHTA" APPLICATIONNAME="myApp" BORDER="thin" BORDERSTYLE="normal" CAPTION="yes" ICON="" MAXIMIZEBUTTON="yes" MINIMIZEBUTTON="yes" SHOWINTASKBAR="no" SINGLEINSTANCE="no" SYSMENU="yes" VERSION="1.0" WINDOWSTATE="maximize"/> <SCRIPT> function window.onload() { sTempStr = "applicationName = " + oHTA.applicationName + "\n" + "border = " + oHTA.border + "\n" + "borderStyle = " + oHTA.borderStyle + "\n" + "caption = " + oHTA.caption + "\n" + "commandLine = " + oHTA.commandLine + "\n" + "icon = " + oHTA.icon + "\n" + "maximizeButton = " + oHTA.maximizeButton + "\n" + "minimizeButton = " + oHTA.minimizeButton + "\n" + "showInTaskBar = " + oHTA.showInTaskbar + "\n" + "singleInstance = " + oHTA.singleInstance + "\n" + "sysMenu = " + oHTA.sysMenu + "\n" + "version = " + oHTA.version + "\n" + "windowState = " + oHTA.windowState + "\n" ; oPre.innerText = sTempStr; } </SCRIPT> </HEAD> <BODY SCROLL="no"> <PRE ID=oPre> </PRE> </BODY> </HTML>
当然win8的metro应用也有专门的js编写情况,需要架设visual studio了[又偷懒了]
三、其他的应用形式,首推node-webkit了,可以打包,可以运行,比hta的模式来讲,hta采用的是对应ie的内核,xp的话性能堪忧
node-webkit用v8解析js,即结合了node.js的资源,又采用了chrome的浏览器解析,且又跨平台,囊括了linux windows mac,近乎全系列
①我总喜欢拿这几位大神的言论作例子 诸神:JavaScript是Web的汇编语言
②这里有一些编译的项目,不仅仅是Emscripten 一切皆为javascript
③linux下面的教程下次我会补齐,这里也有一个完整的tutorial Hello Gnome!
④msdn上的一个简短的介绍 Introduction to HTML Applications