易截截图软件、单文件、免安装、纯绿色、仅160KB

假如浏览器离开了JavaScript [ 邓侃 ] 于:2009 05 10


假如浏览器离开了JavaScript
假如浏览器离开了 JavaScript,那么互联网上绝大多数网页就无法展示。但是激进的主张并非一无是处,至少它能否促进我们对熟视无睹的事物,换一个角度做进一步思考。假如用Java替换JavaScript,会有什么好处?好处或许有三个层面,对于手机应用而言,这些优点尤其可贵。
1. 预先编译,事件响应速度快
JavaScript之所以被广泛应用在网页设计中,一个重要原因是它能够捕捉事件,并相应处理。譬如看下面一段简短的实例,
<html>
   <head>
      <script type="text/javascript">
         function focusEventHandler(x) {
            document.getElementById(x).style.background="yellow";
         }
      </script>
   </head>
   <body>
      <p> Focus here, see the color changed to yellow: </p>
         <input type="text" onfocus="focusEventHandler(this.id)" id="fname">
    </body>
</html>
在这个例子中,“onfocus”指的是当用户在输入框中点击鼠标的事件,而“focusEventHandler(this.id)” 指的是处理这个事件的相应的JavaScript代码。
处理事件的代码不一定非要用JavaScript不可,譬如在微软IE浏览器里,可以用VBScript。如果深究一下,不用 JavaScript,VBScript等等脚本语言,而直接用Java,C/C++等等高级语言,去实现focusEventHander这样的事件处理逻辑,是否可行?理论上是可行的,但是目前的实际情况是,大多数浏览器不支持。不支持的原因,并非是因为技术上难以实现,事实上,如果改变一下浏览器的源码,这个目标并不难实现。不支持的原因主要是出于商务上的考虑,详情参阅前两节文章。
假如用Java这样的高级语言替代JavaScript这样的脚本语言,去响应和处理浏览器事件,在通常情况下,用户体验不一定会有明显改善。但是对于处理逻辑相当复杂的情景,用 Java会使事件的响应处理速度大大提高。譬如有些网页,在打开前会预先loading一段时间。所谓loading,通常是对网页附带的 JavaScript做JIT编译。相比之下,Java之所以比JavaScript反应速度快


相关文档:

javascript常用

calcu()  ----函数实现两个数相乘
document.write();  ---打印
document.calc.元素名.value;  --获得表单的值
document.表单名。表单元素名。value  为表单赋值
定义函数:
 function  名字()
 {
    //javaScript预语句
 }
 onClick="函数名";  ......

Javascript 的词法作用域、调用对象和闭包

作用域 Scope
Javascript 中的函数属于词法作用域,也就是说函数在它被定义时的作用域中运行而不是在被执行时的作用域内运行。这是犀牛书上的说法。但“定义时”和“执行(被调用)时”这两个东西有些人搞不清楚。简单来说,一个函数A在“定义时”就是 function A(){} 这个语句执行的时候就 ......

javascript check all and uncheck

<script language='javascript'>
function toggleAll(cb)
{
    var val = cb.checked;
    var frm = document.forms[0];
    var len = frm.elements.length;
    var i=0;
    for( i=0 ; i<len ; i++)
  &nb ......

[翻译]High Performance JavaScript(005)

第二章  Data Access  数据访问
    One of the classic computer science problems is determining where data should be stored for optimal reading and writing. Where data is stored is related to how quickly it can be retrieved during code execution. This problem in JavaScri ......

关于javascript模块加载的思索2

经几天思考,想到一个叫“文件与模块”的问题。我们的模块肯定写在一个JS文件中,这些模块又可以分为核心模块与外围模块。核心模块当然写在主文件中,它应该包含最重要的逻辑,加载器,列队,命名空间构造器等等。但如果一个文件只存在一个模块这也太浪费了,而且会导致请求法过多,因此出现多个模块“共生”于一个文件的情 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号