title: 《锋利的jQuery》十一、jQuery性能优化 date: 2017-08-16 22:18:00 tags: 锋利的jQuery
使用合适的选择器
以下选择器是按照性能由高到低排序的
$('#id')
使用id来定位DOM元素无疑是最佳提高性能的方式,因为jQuery将直接调用document.getElementById()
方法,如果用id无法直接获取元素那么可以用$('#id').find()
方法。为了提高性能,最好从最近的id开始找。
$('div')
标签选择器性能也是不错的,是第二选择。jQuery将直接调用document.getElementsByTagName()
。
$('.class')
这个方法如果是ie9以上或标准浏览器会调用document.getElementsByClassName()
,对于旧的浏览器将使用DOM搜索的方式,所以相比前两个比较耗费性能。
$('[attribute=value]')
对于利用属性来定位DOM元素,没有js方法直接实现。基本是通过querySelectorAll()
方法实现,如果是旧浏览器会使用DOM搜索的方法。总体来说性能并不理想,尽量避免使用。
$(':hidden')
和上面用属性定位DOM元素类似,这种伪类选择器也没有js方法直接实现,并且jQuery需要搜索每一个元素来定位这个选择器,同样性能不理想,如果必须要用可以在前面加一个id选择器缩小搜索范围。
如果要查看性能区别,可以使用一个在线工具jsPerf。
缓存对象
在书写jQuery代码时经常看到如下代码:
$('#traffic_light input.on').on('click',function(){...});
$('#traffic_light input.on').css('border','1px solid yellow');
$('#traffic_light input.on').css('background-color','orange');
$('#traffic_light input.on').fadeIn('show');
这种思维是无可厚非的,但这样导致的结果是jQuery会在创建每一个选择器的过程中,查找DOM,创建多个jQuery对象。比较好的书写方式如下:
var $active = $('#traffic_light input.on'); // 缓存对象
$active.on('click',function(){...});
$active.css('border','1px solid yellow');
$active.css('background-color','orange');
$active.fadeIn('show');
当然如果采用链式操作将更加简洁,但这里只是强调缓存对象。总之不要让同样的选择器多次出现在代码中。
循环时的DOM操作
使用jQuery可以很方便的添加、删除或修改DOM节点,但是在一些循环,比如for()
、while()
、或者$.each()
中处理节点时,下面有个实例指的注意:
var top_100_list = [...], // 假设这里是100个独一无二的字符串
$myList = $('#myList'); // jQuery选择到元素
for(var i = 0, l = top_100_list.length; i < l; i++){
$myList.append('' + top_100_list[i] + ' ');
}
上面的代码中将每个遍历生成的新元素都作为节点添加到容器$('#myList')
中,这样操作也是非常耗性能的,更好的方法是尽可能的减少DOM操作,这里应该将整个遍历生成的元素都拼接成字符串,最后统一添加到$('#myList')
中:
var top_100_list = [...],
$myList = $('#myList'),
top_100_li = '';
for(var i = 0, l = top_100_list.length; i < l; i++){
top_100_li += '' + top_100_list[i] + ' ';
}
$myList.html(top_100);
这里如果不使用缓存对象,对性能的损耗将更加严重,将会产生100个jQuery对象。
数组方式使用jQuery对象
jQuery对象会感觉像是一个定义了索引和长度的数组,在性能方面,建议使用for
或while
循环来处理,而不是使用$.each()
,这样能使代码更快。
另外,检查长度也是检查jQuery对象是否有效的的方式:
var $content = $('#content');
if($content.length){
// do something
}
事件代理
假设有一张表格,要为每个增加一个事件,点击变色:
$('#myTable td').click(function(){
$(this).css('background','red');
})
假设有100个元素,在使用方式上将绑定100个事件,这将带来很负面的性能影响。更好的方式是利用事件冒泡。向它们的父级绑定一次一次事件:
$('#myTable').click(function(e){
var $clicked = $(e.target);
$clicked.css('background','red');
})
也可以使用on
方法来绑定:
$('myTable').on('click','td',function(){
$(this).css('background','red');
})
使用join()来拼接字符串
可以用join()
的方式来代替+
的方式来拼接字符串,更有助于性能优化,尤其是长字符串处理的时候。
var arr = [];
for(var i = 0; i <= 1000; i++){
arr[i] = '' + i + ' '
}
$('#list').html(arr.join(''));
尽量使用原声的js方法
下面的代码是用来判断多选框是否被选中:
var $cr = $('#cr');
$cr.click(function(){
if($(this).is(':checked')){
console.log('被选中')
}
})
这里用了is()
方法来判断多选框是否被选中,但其实可以直接使用原声的js方法:
var $cr = $('#cr');
$cr.click(function(){
if(this.checked){
console.log('被选中')
}
})
第二种方法不需要拐外抹角的去调用许多函数。还有更多类似的操作:
$(this).css('color','red');
优化成this.style.color = 'red';
。
$('
')
优化成$(document.createElement('p'))
。
你可能感兴趣的:(《锋利的jQuery》十一、jQuery性能优化)
万物生存法则——凡事适可而止,过犹而不及
伴孩子成长潘7782
我们人类生活在地球上,看似简单的活着,实则需要遵循一定的原则,不请看:春种、夏忙、秋收、冬藏。春天的时候播种,夏天的时候忙着在地里除草,秋天是丰收的季节,把粮食收回家,冬天储藏起来好过冬。如果违反了这一规律,那么粮食农作物将会颗粒无收。以前的人们,为了遍尝深山动物的美味,对动物进行大肆捕杀。使得动物们濒临灭绝,对森林的破坏极大。木柴可以修建房屋、可以造纸、加工后可以做好多的高档家具,人们便大肆砍伐
姜思达
荒诞派派
一直都有零零碎碎地关注姜思达微博微信公号发的东西,就觉得他装的每一个X都好讨喜,是在我这里让我觉得欢喜,随意散漫又带着一种劲,迷茫里透着自我,追求生活又不安于生活,他的穿着喜好做事的方式他的选择放在大众人堆里显得有点怪,他又和气又乖僻,可是他多么可爱。
0317《文案创作完全手册》有吸引力的标题就是好标题
言时
【书名】《文案创作完全手册》【阅读内容】第二章2.3~2.7【阅读主题】有吸引力的标题就是好标题【三个问题】1、标题的基本类型有哪些?直言式标题:这种标题开宗明义便点明了商品宣传,不玩文字游戏、隐喻或双关语。暗示式标题:婉转暗示的标题不直接做推销,而是先勾起好奇心,然后才透过广告内文解答读者的疑惑。新知式标题:假如你有关于商品的新消息,不妨在标题中就说出来。“如何”式标题:无论在广告标题、杂志文章
我是那么的爱他们
亲亲鱼老师
趁着教师节的余温,赶紧码字留下此刻的激动心情。前几天答应好友,要到她的幼儿园做一个幼小衔接小讲座。答应她的时候只想着周二晚上诺儿没有兴趣课,不用接送,是有空余时间的。哪知到了昨天,才意识到今天是教师节。呀!糟糕,答应得太快了。教师节,凭我的直觉,那帮孩子一定会回来看我的。果不其然,从昨天到今天一早就接二连三的收到教师节要回母校看我的信息。由于前两年都是担任毕业班工作,所以今年的初一初二都有我的学生
周检视会议
策划运营I周长胜
大家早上好,我是主持人火英。在等小组火什二伴进来之前放点音乐,再等一会其他的小伙伴。大大家都到了,大家帮忙去叫上自己的死党。马俊,小凤海燕到了那会场会议吗开始办吧?喂有声音吗?是有理发系的会议室吧稍微没有。是可以关一下音乐了,呀我因为。觉得好像人还不够啊。那行那在放。对,主要工作人员都还没到期,呢。可以。陈还是张科对吧?他不用记录,吧不记得了。啊就就啊它记录,我帮她小记一下,吧他不发了一个,个然后
《少有人走的路》才是更容易走向成功的路
莉蒂亚
成功的路千万条,更容易走的确是少有人走的那一条。就目前来说《少有人走的路》有它正确的方面,它时时刻刻强调沟通与理解,它跨越时代限制,帮助我们探索爱的本质,引导我们过上崭新、宁静而丰富的生活;它帮助我们学习爱,也学习独立;归根到底,它告诉我们怎样找到真正的自我。同时还为我们提供了不一样的角度来看待心智成熟这个问题,作者结合自己多年心理咨询时的案例,引导我们通过学会自律、爱、信仰、恩典来帮助我们走上心
海量数据查找最大K个值:数据结构与算法的选择
星辰@Sea
数据结构 Java 数据结构
在处理大数据集时,经常需要找到数据集中最大的K个元素,这样的需求在很多领域都有广泛应用,例如推荐系统中寻找评分最高的K个商品、数据分析中找出最重要的K个特征、搜索引擎中找到排名前K的结果等等。面对海量数据,传统的排序方法可能不再适用,因为它们通常具有较高的时间复杂度。因此,选择合适的数据结构和算法对于提高效率至关重要。本文将详细介绍如何在海量数据集中查找最大的K个值,探讨不同的数据结构与算法选择,
连通无向图一般中心的算法及其matlab程序详解
夏天天天天天天天#
图论 算法 matlab 图论
#################本文为学习《图论算法及其MATLAB实现》的学习笔记#################若服务点只允许取在各顶点上,而服务对象却取在各顶点及各边(或弧)上的点,则在所有顶点中选定一个顶点作为图的一般中心其条件是该点离它本身的最远服务对象(包括顶点及各边(或弧)上的点)的距离达到极小值。寻找无向图的一般中心对解决网络最佳服务点确定的问题是十分有效的,使得服务对象的范围
为中原出彩添砖加瓦
fjx付俊香
学习省委十届六次全会暨省委工作会议心得体会河南省委十届六次全会,深刻地阐述了“中原更出彩”和“两个高质量发展”的内涵,把准了河南当前和今后一段时间的脉搏,号召我们紧跟总书记步伐、紧扣党中央节拍、紧贴新时代任务!作为奋战在一个正起步腾飞的新学校的一员,我应该这样做:一、加强学习,提高自身素养注多读书,多学习,切实提高自身理论水平和业务水平,用教育理论武装自己,力求为学生创造最好的教育。二、以身作则,
近期读到的一眼就惊艳你的神仙句子
文案分享集
1.什么时候觉得情敌越多越好,当他们说我爱中国的时候。2.国家教育有方,金牌干干净净。3.人民有信仰,国家有力量,民族有希望。4.愿世界和平,可以温柔以待。5.我们生在红旗下,长在春风里,人民有信仰,国家有力量,目光所致皆是华夏,五星闪耀皆为信仰。6.以前那个连国歌都不愿意大声唱的小孩,现在因为国家如此骄傲。7.我落笔写下青春年华,只是墨色淡了,没能写出未来可期,也没能写出放荡不羁,所以我一生奔赴
2019-03-01
何礼东
相信大家已经在着手开始建立自己的7天短社群了,但在建立之前。请大家在上再次梳理一下你自己的优势和资源,让你做社群更有方向和内容…图片发自App我的优势:技能:个人定位,品牌推广,模式化调理技术指导与监控,社群运营,项目策划,PPT及教案,外汇股票,吉他,经验:30年经商与品牌运营经验,15年营养调理研究和实战经验,3年的模式化技术指导官,4年社群运营经验,2年模式化小社群"服务+培训"方案实战经验
大屁猪种心桃树
装蝴蝶朱
大屁猪在门前的一片荒地上,挖了好多的坑,又从斑马叔叔那里买来了一大捆的心桃树的小树苗,一棵一棵地种下去。每天早上,大屁猪就提着小水桶,从房子旁边的弯弯的小溪边,提来清凉的河水,给小树苗浇水。太阳公公的和暖的阳光洒在小树苗上,和煦的清风吹在小树苗上,细细的小雨滴轻轻落在小树苗上。小树苗一天一天长大了,长出了嫩绿嫩绿的椭圆形的小树叶。又过了半个月,心桃树尖上长出了好几个粉色的花骨朵。大屁猪一边给小树浇
抖音直播解决假期投放难题:四开策略助力商家提升广告效果
信息流陈默先生
巨量广告 信息流广告 抖音广告 信息流广告 广告 抖音广告
假期是广告投放的高峰期,但同时也是竞争激烈、流量庞大的时期。许多商家和广告投手都面临着如何在这个时期实现稳定的广告效果、提高转化率等挑战。为了解决这些问题,我们建议商家采用“四开”策略,以提升账户的稳定跑量表现。一、什么是“四开”策略?“四开”策略是一种创新的广告投放方式,包括直播托管、支付ROI、长周期转化和智能优惠券四种标准推广下的产品。通过这四种方式的结合,商家可以更好地吸引目标受众、提高转
书、画册、唱片、收藏的文物散在四处。
舊書店
脸色略白,目光沉郁,礼节性的微笑挟着一丝腼腆在眼镜片后面一闪而过。屋子像一艘大船,须有船长指点向左向右。屋顶高挑,四壁素白,两台织布机上有布有绢,几台LP唱机开瞠破肚摊在桌上,书、画册、唱片、收藏的文物散在四处。透过大玻璃,可以望见院子里的绿。这是阿城的新宅。“买不起城里的房子。”他说。图片发自App图片发自App图片发自App图片发自App图片发自App图片发自App图片发自App图片发自App
你被卷了吗?地产人
地产人观察日记
最近有点儿文思泉涌,更文积极性大增,主要是有自己想说的话题!内卷,本是一个社会学术语,现在用来代指非理性的内部竞争!最开始这个词频繁的用在互联网行业中,近一段时间开始蔓延到各行各业。01学历内卷在2020年地产行业人才报告中,地产行业本科学历人才占比67.06%,硕士及以上学历人才占11.4%。而在2018年的同类数据中,地产行业本科以上学历占比76%,本科学历64%,硕士学历10%,博士及博士后
DRGS 基本信息集合
苏磊CHIVA
文章后面后DRGS和DIP的区别区域点数法总额预算和按病种分值付费(DIP)将在2021年全面推行,这是一种基于“预付+病种”的全新医保基金支付方式,必将对医改产生重大影响。【区域点数法总额预算】【按病种分值付费】此种支付方式不仅对医保基金使用效率有深远影响,更重要的是将会导致医保支付方和医疗服务提供方管理模式发生根本改变。新政实施目的【改革一件事儿,总是要有目的性,无非是控制费用】医疗保险政策支
Cocos2d、Cocos2dx、Cocos Creator、Cocos Studio的区别
Thomas游戏圈
一、Cocos2d和Cocos2dx的区别【开发语言】:Cocos2d是Object-C写的,Cocos2dx是C++写的,支持使用C++、Lua或Java进行开发。【运行平台】:Cocos2d只能在IOS下运行,Cocos2dx是跨平台的,适配iOS、Android、HTML5、Windows和Mac系统,功能侧重于原生移动平台。点击链接加入群聊【Unity/Cocos交流群】【国籍】:Coco
京东自营店和旗舰店哪个好?京东买东西怎么便宜?
高省APP
京东买东西怎么便宜?优惠券和促销活动:京东会定期提供各种优惠券和促销活动,您可以通过京东官方网站、客户端或者关注京东的社交媒体账号来获取这些信息。例如,满减券、特定产品折扣券等,合理利用这些优惠券可以在结算时享受优惠。网购你是直接下单吗?还是说用别人的口令和链接下单?千万不要这么做了,网购是可以领取隐藏优惠券和高额返佣的。如果你直接下单的话,就不能领取隐藏优惠券和商家给的返佣了。如果你是通过别人分
固定家具定制化那些事
CrazyLiu生活提案
设计:收口,电源线,可调整空间量尺:安装位置上中下三处,给出更多的弹性空间可调整空间,预留缝给出下单尺寸:给出足够的尺寸,宁大勿小,现场安装交底记录的完备性,家具与墙面收口的合理化处理
『2021.6.15 0166』如何保持年轻的心态
卞文静bwj
大家好,我是卞文静,今天是我参加1000天演讲打卡➕写作的第166天,今天分享的主题是如何保持年轻的心态。我相信当被别人夸赞您看起来真年轻的时候,每个人都会感到非常的开心。同样当别人问起105岁高龄的日野原重明先生时,他说他的内心也是非常开心的。接下来分享日野先生是如何保持心态年轻的方法。他说他不仅注重饮食和生活习惯,对美容护肤也很上心,甚至在他104岁的时候还尝试了祛斑治疗,他说重视自己的容貌,
人教版六年级数学上册教材分析
尚未秃头的老师
教学内容:修订后的六年制第十一册教科书的主要内容有:位置,分数乘法,分数除法,圆,百分数,统计,数学广角和数学实践活动等。分数乘法和除法,圆,百分数等是本册教材的重点教学内容。教材分析:在数与代数方面,教材安排了分数乘法、分数除法、百分数三个单元。分数乘法和除法的教学是在前面学习整数、小数有关计算的基础上,培养学生分数四则运算能力以及解决有关分数的实际问题的能力。会解决简单的有关百分数的实际问题,
23岁——人生很迷茫
林一_e93f
2018年,林一23岁了,这一年,林一懵懵懂懂的从大学毕业了,徒然面对这个社会,像个小女孩被母亲遗弃般,在陌生的大街上不知所措。23岁的林一,四年前听从父母的安排选了法学专业,浑浑噩噩的上了四年,这四年林一越发的讨厌自己的专业,林一试着与自己的专业和解,但是在一次又一次在法学专业栽跟头后,林一越发的无力,对人生越发的迷茫。23岁的林一,6月份毕业了,但是最重要的法律职业资格证却没有考下来,林一想在
2023-04-04
苗玉祥
也说那混沌初开,天地玄黄之时,从仙界飞出十只凤凰,东西南北中,各处翱翔游历,其中第六只红凤落在一处青峰郁郁,杨柳依依,芳草萋萋,河水弯弯之地,因景色秀美而流连忘返,错过返回天界的时辰,于是身形化为一座山,留在了这个地方。红凤身上的血液溶进山脉,人们在修城筑堡的时候,发现山下土色殷红赭赤,如鲜血浸透一般,自从红凤化身山脉后,方圆十里风调雨顺,百业兴旺,故当地百姓将此座山命名凤凰山,山下红土筑就的一座
低代码平台与传统开发平台的主要区别是什么?
勤研科技
低代码开发新视角 低代码
在当今快速发展的数字化时代,企业和个人对软件开发的需求日益增长。然而,传统的软件开发方式往往面临着开发周期长、成本高、技术门槛高等问题。为了应对这些挑战,低代码平台应运而生,成为一种新兴的开发方式。低代码平台通过简化开发流程,降低了技术门槛,使得非技术用户也能参与到应用开发中来。低代码平台的核心理念是通过可视化工具和预设模板,让用户能够快速构建应用,而无需深入的编程知识。这种方式不仅提高了开发效率
养育男孩女孩原来是这么的不同
轩泽妈妈
2020年2月24日星期一小雨119通过这几天父母课堂的学习,让我对孩子有了更多的了解和认识,加上自己心态的改变和轩宝的改变,我们的相处更加和谐了,通过使用番茄学习法,作业也比原来完成的好多了。今天上午轩宝上完网课,看了会书后,觉得无聊,他想要看会电视。假如是以前我会直接拒绝,然后和他讲一大堆道理,紧接着轩宝乱发脾气,我会不开心。今天我换了种处理方式,首先我同意了他看电视这个要求,他很开心的说:“
MySQL基于GTID同步模式搭建主从复制
迷茫运维路
数据库 mysql 运维 数据库
系列文章目录rpmbuild构建mysql5.7.42版本的rpm包文章目录系列文章目录一、mysql-5.7.42RPM包构建二、同步模式分类介绍1.异步同步模式2.半同步模式2.1.实现半同步操作流程2.2.半同步问题总结2.3.半同步一致性2.4.异步与半同步对比3.GTID同步三、GTID同步介绍1.gtid介绍2.gtid组成3.gtid工作原理4.gtid优缺点四、搭建主从复制1.两台
烦躁
jessica3827
下午三点多才起床,今天的心情很怪,有种没办法控制的感觉,心脏很焦躁的比往常跳的更快一些,不想吃饭,就干脆一直坐着发呆。昨晚一直学习到凌晨六点多才睡觉,被考研折磨的作息已经变成了日夜颠倒,所以有时候猛的在下午醒过来,就会被怅然若失的低落感瞬间包围。不小心打开了朋友圈,呵,好热闹,都没能敢多看几眼,怎么回事?感觉这个世界上就我被抛弃了?感觉好饿,微信上问我妈要不要出去吃点什么,很久都不回复我,得,自己
看图写诗No78 另一种天空
环球慢旅程
另一种天空抬头仰望,我看到另一种天空,更真诚更温暖,我听到飞鸟在歌唱与我一起飞翔!我多想也有一双翅膀,飞越天外天,彩云之上,那些所有烦恼的事情,永远不用再面对。我对飞鸟说,你的天空太遥远,我无法到达。飞鸟说,人类的智慧比天空更宽阔,只要有梦想,你就可以飞翔。我对飞鸟说,我的眼睛看不到生活的意义,梦想和现实是大海与天空的距离。飞鸟又说,自由的心没有边界,大海也是我的天空。我低头看,飞鸟在海面上的倒影
感恩单1.11
krysdracula
1.感谢早上我的手机闹钟叫我起床.2.感谢感谢游艺阿姨家人送我们去医院…3.感谢简老师今天教给我的知识…4.感谢公交车司机送我回来…真的挺快的5.感谢许节节借给我煮药的罐子6.感谢郑荣枰和吕怡买了好多东西一起吃7.感谢今天我的小雨伞辛苦了~8.感谢郑荣枰家热水器让我洗了个热水澡今日观想:看到姐姐就还是有些接受不了她去世的消息…这个真的好难
《最可爱的人》电影观后感
月儿_Yuki
今天,我看了一部很感人的电影--《最可爱的人》。这部电影讲的是抗美援朝时的感人事迹,它讲述了黄继光,邱少云等感人的事迹,其中,最令我感动的事迹就是杨根思的事迹。在那次战争中,西北风呼呼地吹着,鹅毛大雪飞舞着,杨根思所在的团队各个都是满面冻疮,他们不仅要忍受严寒,而且必须要把这片阵地守下,不然,美国人就会趁机而入。很快,杨根思身边的几名同志已经牺牲,杨根思强忍着热泪,最后决定让剩下的几名同志赶紧去报
Spring中@Value注解,需要注意的地方
无量
spring bean @Value xml
Spring 3以后,支持@Value注解的方式获取properties文件中的配置值,简化了读取配置文件的复杂操作
1、在applicationContext.xml文件(或引用文件中)中配置properties文件
<bean id="appProperty"
class="org.springframework.beans.fac
mongoDB 分片
开窍的石头
mongodb
mongoDB的分片。要mongos查询数据时候 先查询configsvr看数据在那台shard上,configsvr上边放的是metar信息,指的是那条数据在那个片上。由此可以看出mongo在做分片的时候咱们至少要有一个configsvr,和两个以上的shard(片)信息。
第一步启动两台以上的mongo服务
&nb
OVER(PARTITION BY)函数用法
0624chenhong
oracle
这篇写得很好,引自
http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html
OVER(PARTITION BY)函数用法
2010年10月26日
OVER(PARTITION BY)函数介绍
开窗函数 &nb
Android开发中,ADB server didn't ACK 解决方法
一炮送你回车库
Android开发
首先通知:凡是安装360、豌豆荚、腾讯管家的全部卸载,然后再尝试。
一直没搞明白这个问题咋出现的,但今天看到一个方法,搞定了!原来是豌豆荚占用了 5037 端口导致。
参见原文章:一个豌豆荚引发的血案——关于ADB server didn't ACK的问题
简单来讲,首先将Windows任务进程中的豌豆荚干掉,如果还是不行,再继续按下列步骤排查。
&nb
canvas中的像素绘制问题
换个号韩国红果果
JavaScript canvas
pixl的绘制,1.如果绘制点正处于相邻像素交叉线,绘制x像素的线宽,则从交叉线分别向前向后绘制x/2个像素,如果x/2是整数,则刚好填满x个像素,如果是小数,则先把整数格填满,再去绘制剩下的小数部分,绘制时,是将小数部分的颜色用来除以一个像素的宽度,颜色会变淡。所以要用整数坐标来画的话(即绘制点正处于相邻像素交叉线时),线宽必须是2的整数倍。否则会出现不饱满的像素。
2.如果绘制点为一个像素的
编码乱码问题
灵静志远
java jvm jsp 编码
1、JVM中单个字符占用的字节长度跟编码方式有关,而默认编码方式又跟平台是一一对应的或说平台决定了默认字符编码方式;2、对于单个字符:ISO-8859-1单字节编码,GBK双字节编码,UTF-8三字节编码;因此中文平台(中文平台默认字符集编码GBK)下一个中文字符占2个字节,而英文平台(英文平台默认字符集编码Cp1252(类似于ISO-8859-1))。
3、getBytes()、getByte
java 求几个月后的日期
darkranger
calendar getinstance
Date plandate = planDate.toDate();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(plandate);
// 取得三个月后时间
cal.add(Calendar.M
数据库设计的三大范式(通俗易懂)
aijuans
数据库复习
关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。数据库的设计范式是数据库设计所需要满足的规范。只有理解数据库的设计范式,才能设计出高效率、优雅的数据库,否则可能会设计出错误的数据库.
目前,主要有六种范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。满足最低要求的叫第一范式,简称1NF。在第一范式基础上进一步满足一些要求的为第二范式,简称2NF。其余依此类推。
想学工作流怎么入手
atongyeye
jbpm
工作流在工作中变得越来越重要,很多朋友想学工作流却不知如何入手。 很多朋友习惯性的这看一点,那了解一点,既不系统,也容易半途而废。好比学武功,最好的办法是有一本武功秘籍。研究明白,则犹如打通任督二脉。
系统学习工作流,很重要的一本书《JBPM工作流开发指南》。
本人苦苦学习两个月,基本上可以解决大部分流程问题。整理一下学习思路,有兴趣的朋友可以参考下。
1 首先要
Context和SQLiteOpenHelper创建数据库
百合不是茶
android Context创建数据库
一直以为安卓数据库的创建就是使用SQLiteOpenHelper创建,但是最近在android的一本书上看到了Context也可以创建数据库,下面我们一起分析这两种方式创建数据库的方式和区别,重点在SQLiteOpenHelper
一:SQLiteOpenHelper创建数据库:
1,SQLi
浅谈group by和distinct
bijian1013
oracle 数据库 group by distinct
group by和distinct只了去重意义一样,但是group by应用范围更广泛些,如分组汇总或者从聚合函数里筛选数据等。
譬如:统计每id数并且只显示数大于3
select id ,count(id) from ta
vi opertion
征客丶
mac opration vi
进入 command mode (命令行模式)
按 esc 键
再按 shift + 冒号
注:以下命令中 带 $ 【在命令行模式下进行】,不带 $ 【在非命令行模式下进行】
一、文件操作
1.1、强制退出不保存
$ q!
1.2、保存
$ w
1.3、保存并退出
$ wq
1.4、刷新或重新加载已打开的文件
$ e
二、光标移动
2.1、跳到指定行
数字
【Spark十四】深入Spark RDD第三部分RDD基本API
bit1129
spark
对于K/V类型的RDD,如下操作是什么含义?
val rdd = sc.parallelize(List(("A",3),("C",6),("A",1),("B",5))
rdd.reduceByKey(_+_).collect
reduceByKey在这里的操作,是把
java类加载机制
BlueSkator
java 虚拟机
java类加载机制
1.java类加载器的树状结构
引导类加载器
^
|
扩展类加载器
^
|
系统类加载器
java使用代理模式来完成类加载,java的类加载器也有类似于继承的关系,引导类是最顶层的加载器,它是所有类的根加载器,它负责加载java核心库。当一个类加载器接到装载类到虚拟机的请求时,通常会代理给父类加载器,若已经是根加载器了,就自己完成加载。
虚拟机区分一个Cla
动态添加文本框
BreakingBad
文本框
<script> var num=1; function AddInput() { var str=""; str+="<input 
读《研磨设计模式》-代码笔记-单例模式
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
public class Singleton {
}
/*
* 懒汉模式。注意,getInstance如果在多线程环境中调用,需要加上synchronized,否则存在线程不安全问题
*/
class LazySingleton
iOS应用打包发布常见问题
chenhbc
ios iOS发布 iOS上传 iOS打包
这个月公司安排我一个人做iOS客户端开发,由于急着用,我先发布一个版本,由于第一次发布iOS应用,期间出了不少问题,记录于此。
1、使用Application Loader 发布时报错:Communication error.please use diagnostic mode to check connectivity.you need to have outbound acc
工作流复杂拓扑结构处理新思路
comsci
设计模式 工作 算法 企业应用 OO
我们走的设计路线和国外的产品不太一样,不一样在哪里呢? 国外的流程的设计思路是通过事先定义一整套规则(类似XPDL)来约束和控制流程图的复杂度(我对国外的产品了解不够多,仅仅是在有限的了解程度上面提出这样的看法),从而避免在流程引擎中处理这些复杂的图的问题,而我们却没有通过事先定义这样的复杂的规则来约束和降低用户自定义流程图的灵活性,这样一来,在引擎和流程流转控制这一个层面就会遇到很
oracle 11g新特性Flashback data archive
daizj
oracle
1. 什么是flashback data archive
Flashback data archive是oracle 11g中引入的一个新特性。Flashback archive是一个新的数据库对象,用于存储一个或多表的历史数据。Flashback archive是一个逻辑对象,概念上类似于表空间。实际上flashback archive可以看作是存储一个或多个表的所有事务变化的逻辑空间。
多叉树:2-3-4树
dieslrae
树
平衡树多叉树,每个节点最多有4个子节点和3个数据项,2,3,4的含义是指一个节点可能含有的子节点的个数,效率比红黑树稍差.一般不允许出现重复关键字值.2-3-4树有以下特征:
1、有一个数据项的节点总是有2个子节点(称为2-节点)
2、有两个数据项的节点总是有3个子节点(称为3-节
C语言学习七动态分配 malloc的使用
dcj3sjt126com
c language malloc
/*
2013年3月15日15:16:24
malloc 就memory(内存) allocate(分配)的缩写
本程序没有实际含义,只是理解使用
*/
# include <stdio.h>
# include <malloc.h>
int main(void)
{
int i = 5; //分配了4个字节 静态分配
int * p
Objective-C编码规范[译]
dcj3sjt126com
代码规范
原文链接 : The official raywenderlich.com Objective-C style guide
原文作者 : raywenderlich.com Team
译文出自 : raywenderlich.com Objective-C编码规范
译者 : Sam Lau
0.性能优化-目录
frank1234
性能优化
从今天开始笔者陆续发表一些性能测试相关的文章,主要是对自己前段时间学习的总结,由于水平有限,性能测试领域很深,本人理解的也比较浅,欢迎各位大咖批评指正。
主要内容包括:
一、性能测试指标
吞吐量、TPS、响应时间、负载、可扩展性、PV、思考时间
http://frank1234.iteye.com/blog/2180305
二、性能测试策略
生产环境相同 基准测试 预热等
htt
Java父类取得子类传递的泛型参数Class类型
happyqing
java 泛型 父类 子类 Class
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.junit.Test;
abstract class BaseDao<T> {
public void getType() {
//Class<E> clazz =
跟我学SpringMVC目录汇总贴、PDF下载、源码下载
jinnianshilongnian
springMVC
----广告--------------------------------------------------------------
网站核心商详页开发
掌握Java技术,掌握并发/异步工具使用,熟悉spring、ibatis框架;
掌握数据库技术,表设计和索引优化,分库分表/读写分离;
了解缓存技术,熟练使用如Redis/Memcached等主流技术;
了解Ngin
the HTTP rewrite module requires the PCRE library
流浪鱼
rewrite
./configure: error: the HTTP rewrite module requires the PCRE library.
模块依赖性Nginx需要依赖下面3个包
1. gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )
2. rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )
3. s
第12章 Ajax(中)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
Optimize query with Query Stripping in Web Intelligence
blueoxygen
BO
http://wiki.sdn.sap.com/wiki/display/BOBJ/Optimize+query+with+Query+Stripping+in+Web+Intelligence
and a very straightfoward video
http://www.sdn.sap.com/irj/scn/events?rid=/library/uuid/40ec3a0c-936
Java开发者写SQL时常犯的10个错误
tomcat_oracle
java sql
1、不用PreparedStatements 有意思的是,在JDBC出现了许多年后的今天,这个错误依然出现在博客、论坛和邮件列表中,即便要记住和理解它是一件很简单的事。开发者不使用PreparedStatements的原因可能有如下几个: 他们对PreparedStatements不了解 他们认为使用PreparedStatements太慢了 他们认为写Prepar
世纪互联与结盟有感
阿尔萨斯
10月10日,世纪互联与(Foxcon)签约成立合资公司,有感。
全球电子制造业巨头(全球500强企业)与世纪互联共同看好IDC、云计算等业务在中国的增长空间,双方迅速果断出手,在资本层面上达成合作,此举体现了全球电子制造业巨头对世纪互联IDC业务的欣赏与信任,另一方面反映出世纪互联目前良好的运营状况与广阔的发展前景。
众所周知,精于电子产品制造(世界第一),对于世纪互联而言,能够与结盟