你永远不能战胜一个纯傻逼,因为他会把你的智商拉到跟他一个水平,然后用丰富的经验打败你! Do not argue with an idiot. He will drag you down to his level and beat you with experience.
Wednesday, April 28, 2010
struts2 annotations下载
Tuesday, April 27, 2010
jquery shell
Monday, April 19, 2010
前端开发的利器-Aptana
如今前端设计和开发分工明确,对于专注于前端开发的同学来说,希望能有一款完美支持的前端技术的开发工具。adobe Dreamweaver一向把持着web开发设计的主导地位,由过去的“所见即所得”的开发理念,逐渐转变为对设计环境和开发环境不同的环境支持。adobe系列对于web设计的整合很完美,可是对于web开发上的支持就不怎么样了。即使如此,我也还是很喜欢用Dreamweaver的编辑功能,写css很顺手,写js还成,毕竟对于js的话,我也才上手。
不过我发现了这么一款前端开发工具——aptana(http://www.aptana.org/),可以让我抛弃Dreamweaver了。
Aptana过去是有免费版和收费的pro版,不过从2.0版已经完全免费且开源了。由于是基于eclipse开发的,所以也是跨平台的。现在时2.01
除了完美对html、css、js的支持,装上相应插件后,可以实现对各种流行ajax库的支持。(–!我就会jQuery……)此外还有对ruby、python、php这些开发语言的支持。还有对adobe air的开发也是支持的。总之就是很豪华的一套工具!更详细的移步Aptana官方主页:http://www.aptana.org/
官方提供了独立安装包和eclipse插件两种安装方式。
一、独立安装包。
直接解压安装即可。可能因为存在其他eclipse的IDE,所以运行的时候,可能会出现workspace出错等问题。
解决方式:
在桌面快捷方式的目标路径后面加“-data”参数以另外指定一个workspace的路径。例如:"D:\Aptana Studio 2.0\AptanaStudio.exe" –data e:\workspace
二、插件安装。
可以在基于eclipse所有的IDE上安装。比如,myeclipse、zend studio之类的。
eclipse的安装通常有两种方法:
1、在”help”-“Install new software”中加http://download.aptana.org/tools/studio/plugin/install/studio这个地址安装插件。
不过速度慢,据说容易出问题,还是不要这样折腾的好。
2、下载插件安装。
先去http://www.aptana.org/studio/plugin这下载插件吧。
在HELP->Install New Software中点击Add…打开Add site,然后点击Archive选择下载的插件安装。
安装好了之后可以在plugin manager中添加你所需要的插件。
ajax库支持
从上图中我们可以看出Aptana提供了丰富的ajax库支持。装上你常用的库,你就可以在项目中更好的使用Aptana对ajax这些流行库的支持。
对项目添加ajax库支持的操作流程:
1、右击项目->import
2、选择Aptana下的Ajax Library Import Wizard
3、勾选你所要用的库
4、然后确定导入即可。
然后编程中,这些导入的库将自动提供支持。
Tips:
1、我从Aptana2.0开始使用那会对jQuery的支持还有些问题:对$不支持,只能使用jQuery。在官方论坛上也发现有人提交了这个bug。所幸第二天2.01版就出来了修正了这个bug。
2、在菜单 Window / Preferences / General / Keys ,然后找到“Content Assist”这一项可以修改快捷键。我用的是AIT+/。
3、如果jQuery这些库的支持没有出现的话,首先确认你已经装了相应插件,然后在Window / Preferences / Aptana/Editors/JavaScript/Code Assit中勾选相应的库支持。
Thursday, April 15, 2010
jquery实现lightbox效果
x标题内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容
function popUpCenter(){ var o = $("#popUpContainer"); o.addClass("popUpWindow"); /** 1、窗口宽:document.body.clientWidth 2、div的宽度:o.css("width") .css("width")取得的是css属性中的宽度。 .width()取得的是元素的width属性。 IE中使用.width()去不到css中设置的宽度,firefox则可以 3、$('.popUpWindowBg').css('filter', 'alpha(opacity=40)'); 设置ie的透明度,此项写在css文件中没有效果。firefox则没问题。 */ o.css({"left":parseInt(document.body.clientWidth)/2 - parseInt(o.css("width").substring(0,o.css("width").length -2))/2 + "px","top":parseInt(window.screen.availHeight)/2 - parseInt(o.css("width").substring(0,o.css("height").length -2))/2 - 50 + "px"}); o.show(); $('.popUpWindowBg').css('filter', 'alpha(opacity=40)');// IE8 USE $('.popUpWindowBg').fadeIn(500); } $(document).ready(function(){ /** 关闭窗口 */ $(".closeWindow").click(function(){ $('#popUpContainer').fadeOut(500); $('.popUpWindowBg').fadeOut(500); }); $(".popUpWindowBg").click(function(){ $('#popUpContainer').fadeOut(500); $('.popUpWindowBg').fadeOut(500); }); });
Friday, April 09, 2010
走向架构师之路博文分享
* 在客户端做路由和负载(走向架构师之路) http://blog.csdn.net/cutesource/archive/2010/03/30/5432923.aspx 2010-03-31 09:48:47
* 关于C3P0容错和自动重连特性的研究(走向架构师之路) http://blog.csdn.net/cutesource/archive/2010/03/27/5422093.aspx 2010-03-31 09:49:26
* 关于nio和tomcat6的一些有用图示(走向架构师之路) http://blog.csdn.net/cutesource/archive/2010/03/23/5407762.aspx 2010-03-31 09:49:50
* 规则引擎drools初探(走向架构师之路) http://blog.csdn.net/cutesource/archive/2010/03/20/5400118.aspx 2010-03-31 09:50:17
* 操作系统的精髓(走向架构师之路) http://blog.csdn.net/cutesource/archive/2010/03/20/5399332.aspx 2010-03-31 09:50:35
* 关于Scalability和Performance的一些观点(走向架构师之路) http://blog.csdn.net/cutesource/archive/2010/01/21/5219088.aspx 2010-03-31 09:51:00
* 听完蔡学镛的分享《不瞌睡的PPT制作秘诀》后的总结(走向架构师之路) http://blog.csdn.net/cutesource/archive/2010/01/11/5176829.aspx 2010-03-31 09:51:32
* 文档形式的变化带来的改观(走向架构师之路) http://blog.csdn.net/cutesource/archive/2010/01/09/5163643.aspx 2010-03-31 09:51:58
* 基于Spring AOP实现对外接口的耗时监控(走向架构师之路) http://blog.csdn.net/cutesource/archive/2010/01/09/5163467.aspx 2010-03-31 09:52:21
* 如何保证架构设计的稳定性------项目前后两次架构设计对比(走向架构师之路) http://blog.csdn.net/cutesource/archive/2009/12/29/5098167.aspx 2010-03-31 09:52:42
* Tomcat 源码分析(四)------ Request和Response处理的全过程(走向架构师之路) http://blog.csdn.net/cutesource/archive/2009/12/28/5091732.aspx 2010-03-31 09:53:08
* Tomcat 源码分析(三)------ 可携带状态的线程池(走向架构师之路) http://blog.csdn.net/cutesource/archive/2009/12/26/5081916.aspx 2010-03-31 09:53:32
* 第一次做项目发布员的一些总结(走向架构师之路) http://blog.csdn.net/cutesource/archive/2009/12/26/5080146.aspx 2010-03-31 09:53:54
* Tomcat 源码分析(二)------ 一次完整请求的里里外外(走向架构师之路) http://blog.csdn.net/cutesource/archive/2009/12/19/5040417.aspx 2010-03-31 09:54:17
* Tomcat 源码分析(一)------ 架构(走向架构师之路) http://blog.csdn.net/cutesource/archive/2009/12/14/5006062.aspx 2010-03-31 09:57:41
* Quartz 源码分析(一)------ 以线程等待的方式实现按时间调度(走向架构师之路) http://blog.csdn.net/cutesource/archive/2009/12/08/4965520.aspx 2010-03-31 09:58:11
* 听 David讲SaaS http://blog.csdn.net/cutesource/archive/2009/12/07/4959561.aspx 2010-03-31 09:58:43
* 架构师的沟通方式 http://blog.csdn.net/cutesource/archive/2009/12/06/4952633.aspx 2010-03-31 09:59:01
* Hessian 源码分析(三)------ HessianSkeleton http://blog.csdn.net/cutesource/archive/2009/12/05/4946968.aspx 2010-03-31 09:59:23
* Hessian 源码分析(二)------ HessianProxy http://blog.csdn.net/cutesource/archive/2009/12/05/4946556.aspx 2010-03-31 09:59:41
* hessian 源码分析(一)------架构 http://blog.csdn.net/cutesource/archive/2009/12/05/4944954.aspx 2010-03-31 10:00:22
* 分享一些牛人的心得 http://blog.csdn.net/cutesource/archive/2009/11/30/4906092.aspx 2010-03-31 10:00:36
* 架构师的那些事儿 http://blog.csdn.net/cutesource/archive/2009/11/29/4901506.aspx 2010-03-31 10:00:50
* 解析spring schedule http://blog.csdn.net/cutesource/archive/2009/11/29/4900020.aspx 2010-03-31 10:01:01
* 淘宝性能测试要点 http://blog.csdn.net/cutesource/archive/2009/11/29/4898984.aspx 2010-03-31 10:01:12
* 从上至下的学习计划 http://blog.csdn.net/cutesource/archive/2009/11/28/4893325.aspx 2010-03-31 10:01:25
* 结构化思维 http://blog.csdn.net/cutesource/archive/2009/11/02/4759552.aspx 2010-03-31 10:01:45
* 一次架构设计的摸索 http://blog.csdn.net/cutesource/archive/2009/11/02/4759321.aspx 2010-03-31 10:01:56
* 不同差异程度商品的电子商务策略 http://blog.csdn.net/cutesource/archive/2009/09/28/4603860.aspx 2010-03-31 10:02:08
* 从阿里软件到ITBU http://blog.csdn.net/cutesource/archive/2009/09/21/4577508.aspx 2010-03-31 10:02:21
* 程序员如何提高工作效率 http://blog.csdn.net/cutesource/archive/2009/09/20/4572974.aspx 2010-03-31 10:02:30
* 如何激发思考 http://blog.csdn.net/cutesource/archive/2009/09/20/4572803.aspx 2010-03-31 10:02:41
* 仿造Ext Api Doc打造前端组件在线文档 http://blog.csdn.net/cutesource/archive/2009/09/16/4558246.aspx 2010-03-31 10:02:55
* 浏览器内存泄漏问题的跟踪与解决 http://blog.csdn.net/cutesource/archive/2009/09/13/4549105.aspx 2010-03-31 10:03:05
* 职业方向的选择 http://blog.csdn.net/cutesource/archive/2009/09/12/4545969.aspx 2010-03-31 10:03:19
* 走向架构师之路---开博寄语 http://blog.csdn.net/cutesource/archive/2009/09/12/4545859.aspx 2010-03-31 10:03:33
了解jQuery技巧来提高你的代码
《10种JavaScript特效实例让你的网站更吸引人》
《300+Jquery, CSS, MooTools 和 JS的导航菜单资源》
《10个非常棒的Ajax及Javascript实例资源网站》
《推荐9款很棒的网页绘制图表JavaScript框架脚本》
1.测试并提升你的jQuery选择器水平
点击上图查看清晰大图
2.测试jQuery包装集是否包含某些元素
1 2 3 | if($(selector)[0]){...} // 或者这样 if($(selector).length){...} |
1 2 3 4 5 6 7 8 9 10 | //例子.如果你的页面有以下html代码 <ul id="shopping_cart_items"> <li><input class="in_stock" name="item" type="radio" value="Item-X" />Item X</li> <li><input class="unknown" name="item" type="radio" value="Item-Y" />Item Y</li> <li><input class="in_stock" name="item" type="radio" value="Item-Z" />Item Z</li> </ul> <pre escaped="true" lang="javascript">... //这个if条件将返回true,因为我们有两个 // input域匹配了选择器,所以 if($('#shopping_cart_items input.in_stock')[0]){ |
3.从jquery.org读取jQuery最新版本
1 | <script src="http://code.jquery.com/jquery-latest.js"></script> |
1 2 | <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script> |
4.存储数据
1 2 3 | $('selector').attr('alt', 'data being stored'); //之后可以这样读取数据: $('selector').attr('alt'); |
1 2 3 | $('selector').data('参数名', '要存储的数据'); //之后这样取得数据: $('selector').data('参数'); |
HTML部分:
1 2 3 4 5 | <form id="testform"> <input type="text" class="clear" value="Always cleared" /> <input type="text" class="clear once" value="Cleared only once" /> <input type="text" value="Normal text" /> </form> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $(function() { //取出有clear类的input域 //(注: "clear once" 是两个class clear 和 once) $('#testform input.clear').each(function(){ //使用data方法存储数据 $(this).data( "txt", $.trim($(this).val()) ); }).focus(function(){ // 获得焦点时判断域内的值是否和默认值相同,如果相同则清空 if ( $.trim($(this).val()) === $(this).data("txt") ) { $(this).val(""); } }).blur(function(){ // 为有class clear的域添加blur时间来恢复默认值 // 但如果class是once则忽略 if ( $.trim($(this).val()) === "" && !$(this).hasClass("once") ) { //Restore saved data $(this).val( $(this).data("txt") ); } }); }); |
5.jQuery手册常备身边
oscarotero jquery 1.3 (壁纸版)
6.在FireBug控制台记录jQuery
1 | console.log("hello world") |
1 | console.log(2,4,6,8,"foo",bar) |
1 2 3 4 | jQuery.fn.log = function (msg) { console.log("%s: %o", msg, this); return this; }; |
1 2 3 | $('#some_div').find('li.source > input:checkbox') .log("sources to uncheck") .removeAttr("checked"); |
7.尽可能使用ID选择器
1 2 3 4 5 6 7 8 | <div id="main"> <form method="post" action="/"> <h2>Selectors in jQuery</h2> ... ... <input class="button" id="main_button" type="submit" value="Submit" /> </form> </div> |
1 2 3 | //使用class来调用submit按钮要比使用绝对的ID选择器慢很多 var main_button = $('#main .button'); var main_button = $('#main_button'); |
8.善于利用jQuery链
1 | <li>Description: <input type="text" name="description" value="" /></li> |
1 2 3 | $('#shopping_cart_items input.text').css('border', '3px dashed yellow'); $('#shopping_cart_items input.text').css('background-color', 'red'); $('#shopping_cart_items input.text').val("text updated"); |
1 2 3 4 5 6 7 8 9 10 11 | var input_text = $('#shopping_cart_items input.text'); input_text.css('border', '3px dashed yellow'); input_text.css('background-color', 'red'); input_text.val("text updated"); //same with chaining: var input_text = $('#shopping_cart_items input.text'); input_text .css('border', '3px dashed yellow') .css('background-color', 'red') .val("text updated"); |
9.绑定jQuery函数到$(window).load事件
1 2 3 | $(window).load(function(){ // 将你希望在页面完全就绪之后运行的代码放在这里 }); |
10.使用jQuery链来限定选择器,让你的代码更简洁更优雅
1 2 3 | $('#shopping_cart_items input.in_stock') .removeClass('in_stock') .addClass('3-5_days'); |
1 2 3 4 5 | $.fn.makeNotInStock = function() { return $(this).removeClass('in_stock').addClass('3-5_days'); } $('#shopping_cart_items input.in_stock').makeNotInStock().log(); |
11.使用回调函数同步效果
1 2 3 4 5 6 |