手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:javascript

祝贺:微软也开源 将采用jQuery JavaScript库

微软和诺基亚正式宣布支持开源的 jQuery JavaScript库,另外,微软还称他们将把jQuery作为Visual Studio工具集的一部分。他将提供包括jQuery的智能提示,代码片段,示例,文档编制等内容在内的功能。微软和诺基亚将长期成为jQuery的用户成员,其他成员还有Google, Intel, IBM, Intuit, 路透社等。

Tags: javascript, jquery, microsoft, nokia, google

测试JS的速度

在mootools的官方网站有一个网页专门用来测试几个框架的速度,大概是:mootools,jquery,prototype,dojo,yui,测试下来jquery的平均速度应该算是最快的。

那个评测下来IE下JS运行速度慢果然是很明显的。同样的测试在IE下面比FF下面,速度慢了一倍左右啊。

不多了。自己测试一下看结果吧。。
http://mootools.net/slickspeed/

Tags: javascript, speed, framework

YUI 3.0 Preview Release 1

几天不见,YUI居然release了,虽然是preview版本。
官方这么说:


The YUI development team has issued YUI 3.0 Preview Release 1, an early look at the next generation of the Yahoo! User Interface Library (YUI). This developer preview shows you where the library is headed as we pursue goals of size, performance, consistency, power, security, and openness.

You can read the introduction to the new release on YUIBlog and get a sense of the new syntactical style in this blog post, which reviews Dav Glass's Draggable Portable example — one of more than 60 examples that accompany the preview's extensive documentation.

YUI 3.0 PR 1 is an early preview — not suitable for production deployment. The development team is looking forward to your feedback in the YUI 3.x community forum as we refine the API toward a 2009 release.

Work continues on YUI's main 2.x codeline, too, and YUI 2.x is still the foundation for current projects. Check out the library's Roadmap for a up-to-date picture of what we're planning for upcoming releases.


有点期待。

Tags: javascript, yui, preview, release, framewok

javascript---浅析注册事件

在这个浮躁的世界里,说实话,很难看到一两篇好的文章,我写的一般都比较垃圾,但我会尽量发现精品。在闲逛的时候发现这篇文章确实不错,虽然讲的比较简单一点。

文章是从cssrain.cn上COPY而来,原文网址为:http://item.feedsky.com/~feedsky/cssrain/~6110346/103912558/4218245/1/item.html

内容如下:

首先是最常规的方法:

XML/HTML代码
  1. <p id="para" title="cssrain demo!" onclick="test()" >test</p>  
  2. <script>  
  3. function test(){  
  4.   alert("test");  
  5. }  
  6. </script>  

当某一天,我们知道JavaScript要跟HTML结构实现分离后,就会改了一种写法:

XML/HTML代码
  1. <p id="para" title="cssrain demo!">test</p>  
  2. <script>  
  3. function test(){  
  4.   alert("test");  
  5. }  
  6. window.onload = function(){  
  7.     document.getElementById("para").onclick = test;  
  8. }  
  9. </script>  

当我们工作越来越久后,有时候我们需要对某个元素绑定多个相同的事件类型:

XML/HTML代码
  1. <p id="para" title="cssrain demo!">test</p>  
  2. <script>  
  3. function test(){  
  4.   alert("test");  
  5. }  
  6.   
  7. function pig(){  
  8.   alert("pig");  
  9. }  
  10.   
  11. window.onload = function(){  
  12.      document.getElementById("para").attachEvent("onclick",test);  
  13.      document.getElementById("para").attachEvent("onclick",pig);  
  14. }  
  15. </script>  

在一段时间内,你并没发现这段代码有任何错误。
某一天,一个名叫firefox的浏览器 闯入你的视野,当我们把这段代码放到firefox中执行后,
发现并不能正常运行。 问题就这样,越来越多,然而作为一名JS程序员,这些都是必须面对的。

为了解决这段代码的平台兼容性问题,我翻翻手册,知道了firefox跟ie的区别:
firefox中注册事件使用:addEventListener方法,同时为了兼容ie,我们必须用到if ... else...

XML/HTML代码
  1. <p id="para" title="cssrain demo!">test</p>  
  2. <script>  
  3. function test(){  
  4.   alert("test");  
  5. }  
  6.   
  7. function pig(){  
  8.   alert("pig");  
  9. }  
  10.   
  11. window.onload = function(){  
  12.          var element =  document.getElementById("para");  
  13.          if(element.addEventListener){  // firefox  , w3c  
  14.                 element.addEventListener("click",test,false);  
  15.     element.addEventListener("click",pig,false);  
  16.          } else {   // ie  
  17.     element.attachEvent("onclick",test);  
  18.     element.attachEvent("onclick",pig);  
  19.          }  
  20. }  
  21. </script>  

此时,代码就可以在多个平台上工作了。

但随着水平的进步,你不满足每次都去判断,你想把这个判断封装起来,以后可以直接调用:

XML/HTML代码
  1. <p id="para" title="cssrain demo!">test</p>  
  2. <script>  
  3. function test(){  
  4.   alert("test");  
  5. }  
  6.   
  7. function pig(){  
  8.   alert("pig");  
  9. }  
  10.   
  11. function addListener(element,e,fn){  
  12.      if(element.addEventListener){  
  13.           element.addEventListener(e,fn,false);  
  14.      } else {  
  15.           element.attachEvent("on" + e,fn);  
  16.      }  
  17. }  
  18.   
  19. window.onload = function(){  
  20.          var element =  document.getElementById("para");  
  21.          addListener(element,"click",test);  
  22.          addListener(element,"click",pig);  
  23. }  
  24. </script>  
XML/HTML代码
  1. <p id="para" title="cssrain demo!">test</p>  
  2. <script>  
  3. function test(){  
  4.   alert("test");  
  5. }  
  6.   
  7. function pig(){  
  8.   alert("pig");  
  9. }  
  10.   
  11. function addListener(element,e,fn){  
  12.      if(element.addEventListener){  
  13.           element.addEventListener(e,fn,false);  
  14.      } else {  
  15.           element.attachEvent("on" + e,fn);  
  16.      }  
  17. }  
  18.   
  19. window.onload = function(){  
  20.          var element =  document.getElementById("para");  
  21.          addListener(element,"click",test);  
  22.          addListener(element,"click",pig);  
  23. }  
  24. </script>  

 至此,作为一个程序员的工作就完了。
中间我们从一个最传统,最基本的写法 , 然后实现Js和HTML的分离,然后又实现对同一个元素注册多个事件,期间,我们发现注册事件的兼容性问题。最后我们对注册事件的方法进行封装,方便以后使用。

———END——

浏览器这东西还是非常害人的。啥时候才能有统一的标准 ???

Tags: javascript, 注册

用 PHP 生成 JavaScript 字符串

闲来无事,到coolcode.cn上去闲逛。发现了一些比较旧的文章,以前也都看过,但,那时候没有开博,所以也就没有记录。如今博客也开了,coolcode.cn估计要成为我搜刮的对象了。

coolcode.cn的作者是andot,PHPRPC的作者,我06年年中(应该没记错)就使用了这个软件,同年放弃使用xajax,当然,现在我更多的使用jquery来操作ajax,但PHPRPC的功能不完全局限于ajax,我这里就不详谈了。先谈这篇文章。。。

无耻的分隔线:


原来,在从 PHP 中直接传递字符串给 JavaScript 时,直接用了 addcslashes,如果传递的是带有 utf-8 编码汉字的,就用 "\0..\037\042\134",如果纯 ascii 范围内的字符串,就用 "\0..\037\042\134\177..\377"。但是今天在写加密程序时发现,发现程序有时行,有时不行。后来发现原来是 \v \a 搞的。addcslashes 会把 \007..\015(八进制) 转义成 \a\b\t\n\v\f\r,而其中 \a 这个 IE 和 Firefox 都不认识,\v 这个 Firefox 认识,IE 不认识。所以我写了下面这个函数,用它可以就可以转化成 JavaScript/JScript 所认识的字符串了(其中 $flag 表示是否转义 ascii 码大于 127 的字符)。感谢五帝同学的帮助!

PHP代码
  1. /* @author andot & wudi */  
  2. function addjsslashes($str$flag = true)  
  3. {  
  4.     if ($flag) {  
  5.         $str = addcslashes($str"\0..\006\010..\012\014..\037\042\047\134\177..\377");   
  6.     }   
  7.     else {   
  8.         $str = addcslashes($str"\0..\006\010..\012\014..\037\042\047\134");   
  9.     }   
  10.     return str_replace(  
  11.                 array(chr(7), chr(11)),   
  12.                 array('\007''\013'),   
  13.                 $str  
  14.             );   
  15. }   

Tags: php, javascript, 进制转换

Records:341234567