jaxer

今天用Aptana 有了新的更新,软件版本更新到了1.1同时推出一个重要的功能就是Aptana自创的Jaxer,号称是世界上第一个Ajax服务端,虽然是1.0版本,但是发现网站上的资料库已经相当健全,而且还有不少的视频演示。
引用一段官方的对Jaxer的说明翻译:

Jaxer改变了这一切,它是世界上第一个真正的Ajax服务器。在Jaxer里面, HMTL, CSS,Javascript都是它的其中一个对象,就象XMLHttpRequests, JSON, DOM一样。并且作为服务器,它提供了进入数据库、档案和网站建设,以及服务器日志、进程管理、安全性、可扩展性和整合了API。

其实javascript本身是具有服务端运行的属性的,譬如下面这段代码:
客户端运行

  1. <script type="text/javascript">
  2.     document.write("hello word");
  3. </script>

服务端运行

  1. <script type="text/javascript" runat="server">
  2.     document.write("hello word");
  3. </script>


只要 script声明的时候是runat=”server”,就表示在服务端运行,这样的写法其实稍微喝.net类似。而且javascript本身也是可以调用数据库做一些稍微复杂的操作的。但是代码十分繁琐,Jaxer通过再次封装同时加入一些新的功能在里面,就是javascript语言在服务端的功能大大增强。

看下面一段示例代码:

  1. Enter and number between 5 and 50:<input id="number" size="10" type="text" />
  2. <input type="button" value="submit" onclick="SubmitNumber()" />
  3.  
  4. <script type="text/javascript" runat="server">
  5.     var count =Jaxer.File.read("count.txt");
  6.     document.getElementById("number").value=count;
  7.    
  8.     function saveNumber(number){
  9.         if (validateNumber(parseInt(number))) {
  10.             Jaxer.File.write("count.txt",number);
  11.         }
  12.     }
  13.     saveNumber.proxy=true;
  14.    
  15. </script>
  16.  
  17. <script type="text/javascript">
  18.     function SubmitNumber(){
  19.         var currentValue=document.getElementById("number").value;
  20.         if(validateNumber(parseInt(currentValue))){
  21.             saveNumber(currentValue);
  22.             alert("Your number is save")
  23.         }
  24.         else{
  25.             alert("Your number is out of range")
  26.         }
  27.     }
  28.    
  29. </script>
  30.  
  31. <script runat="both">
  32.     function validateNumber(number){
  33.         if(number<5||number>50){
  34.             return false;
  35.         }
  36.         else{
  37.             return true;
  38.         }
  39.     }
  40. </script>

从代码中可以看出,客户端和服务端的数据通信无阻隔,想必是最大的优势。用一门语言可以写服务端也写客户端,可以随意设定语句是在服务端运行还是客户端运行,还是服务和客户端都运行。虽然现在Jaxer刚刚发布,功能还不是很强大,不过确实试验一下还是蛮有意思的东西。

page_flow_diagram

  • Write entire applications or presentation layers in Ajax
  • Full DOM and JavaScript on the server
  • Seamless communications between browser and server
  • Access existing pages written in other languages like PHP, Java, or Ruby on Rails
  • Share validation code on the browser and server
  • Database, file, and socket access from JavaScript
  • Open-source, standards-based, and uses the APIs you already know

相关资料:
Jaxer 官方网站