lizhenqiu blog
最新评论流与站内评论搜索
Comment Stream
最新评论聚合
共 2900 条评论
Current Page
链接聚合
链接标签分页
Latest
评论流
第 112 / 145 页
当前展示 2221 - 2240 条,共 2900 条评论
Google方程式 WWWDOT – GOOGLE = DOTCOM
程序的优化问题
有这样一个问题,有a,b,c,d四个字母,每当刷新页面时会以随机的顺序出现,比如a,d,b,c和b,d,c,a。
我当时的解决方案为:
不过这样写有着很明显的弊端,那就是下次如果想换一些字母进行输出时,必须将程序进行一次大的更改才能继续进行应用,这样做不利于重复使用
下面这种方法就很好的解决了这个问题,当想再次调用时,只需将数组arr中的值进行更改就可以了
在我看来,真正好的函数必须做到可重复使用,模块化,和具有良好的封装性。
找了个最精简的写法
常用html、demo代码
盒子不同模式下的宽高判断
曾经遇到过这样的问题,设定一个div,当给div设置padding的时候,发现整个div的宽高都发生了变化,这里就产生了一个疑惑,一个盒子的总体宽高到底是怎么去判断的呢?
经过查询得知,盒子宽高的判定模式一共有两种,分别为标准模式和怪异模式。
一般情况下个盒子的宽高在一般情况下等于内容的宽高+边框的宽高+内边距的宽高+外边距的宽高
这就是标准模式下的盒子宽高判定
但在某些时候(ie6,7,8 下DOCTYPE缺失)盒子的宽高等于设定的宽高+外边距的宽高,这里的设定的宽高就等于内容的宽高+内边距的宽高+边框的宽高
这就是怪异模式下的盒子宽高判定
我们可以通过使用box-sizing属性来决定使用哪一种模式,
通过怪异模式我们可以在不改变盒子整体宽高的情况下给其设定padding。
常用html、demo代码
CSS3实现让人有点击欲望的按钮
主要通过css3的动画效果来实现
总结两点重要属性就是:
(1)css3的animation属性,要注意几大内核的兼容
然后就是对myfirst动画名称的具体定义
掌握这两个就可以做出很多非常具有点击欲的按钮
成功的故事只能倒叙着讲
台湾小哥说:你们有七天长假好好哦~
我想说:你们也可以有的...
常用html、demo代码
完美 全兼容 解决 文字两端对齐 justify 中文姓名对齐
,text-justify之类的却只有IE支持,就不要考虑了。
justify我的理解,使元素内部的子元素两端对齐,子元素当然只能是inline或inline-block。但justify对最后一行是无能为力的。我们在对齐姓名时,因为只有一行,当作最后一行,所以不会两端对齐的效果。
姓名对齐我们比较常用的是
来添充两个字,三个字的姓名,使包括四字的姓名都能对齐。例如:
所以就想到了用text-align:justify;但怎么解决单行不能两端对齐呢,思路就是:
让浏览器认为这不是最后一行就行了
在元素里面加一个会换行的空的子元素比如:
例子:html结构
scss
效果
原文
Google方程式 WWWDOT – GOOGLE = DOTCOM
尾递归~~有点小意思!!!
尾递归很有意思~~~
拿快排说事的话,本来按照通俗易懂的理解,就是两次调用本身来进行左右排序。
按照尾递归的话得,可以省下一半的递归空间,直接拿一次的处理结果的low 或者high当参数传入下一次的调用。整个过程相比于同时进行两次本身的递归调用,这样只使用一次本身递归调用。
尾递归就是用迭代来代替递归全部过程。
递归调用会消耗大量的栈空间,每一次递归调用函数都会新开一个栈空间进行运行,同时要将上一次函数计算结果保存起来。所谓的保存现场,这样会消耗大量的栈空间。于是用迭代、用尾递归代替全递归调用就是一个很好的选择。
最常用距离都是斐波拉契数列,
教科书就是用这个进行举例递归调用的。
这样就是一个递归调用的最经典的例子,不过在计算的过程中,每次调用的时候都得将上次计算的过程进行现场保存。所以当n很大的时候,这个n会占用很大的内存。
所以改用迭代的过程,或者尾递归的过程,即把每次的计算的结果存储起来同时传递给下一次函数得调用。
在快排改进排序中也是同样利用while迭代,来替代另外一次的递归调用。
突然发现一个问题,我原来混淆了斐波拉契数列。把n的阶乘当成斐波拉契数列数列啦。斐波拉契数列定义应该是
代码同理:
其实所谓尾递归,还是递归调用。但是内部就是用的所谓的迭代。其实可以用while循环来改写。将else部分替换成while的话,可能会更显而易见。
Google方程式 WWWDOT – GOOGLE = DOTCOM
缓存在网站开发中的重要性
通过计算斐波那契数列明白缓存在网站开发中的重要性
1 、首先测试一下没有使用数据缓存来计算斐波那契数列。
2、下面我们看看使用数据缓存来计算斐波那契数列。
通过上面两次对比,瞬间觉得数据缓存的重要性,由331160281次下降到79次。感兴趣的屌丝可以测试一下fib(50);的运行次数,不使用数据缓存我测试了,我的浏览器崩溃了,使用数据缓存运行才99次。
成功的故事只能倒叙着讲
常用html、demo代码
延迟JavaScript的加载
浏览器在执行JavaScript代码时会停止处理页面,当页面中有很多JavaScript文件或代码要加载时,将导致严重的延迟。尽管可以使用defer、异步或将JavaScript代码放到页面底部来延迟JavaScript的加载,但这些都不是一个好的解决方案。
下面是Google的建议。
这段代码的意思是等待页面加载完成后,然后再加载外部的“defer.js”文件。下面是测试结果。
成功的故事只能倒叙着讲
人太容易被惯性 推动着前进,而思维惯性是弊端最大的一个东西~~~要勇于打破一些禁锢自己的东西,这需要一个坚持的过程
《阿里盛世下的蝼蚁》
常用html、demo代码
js的一些坑
1.变量类型模糊,容易出现问题;
2.全局变量与函数内部变量同名时,在函数内部声明变量,声明位置虽然在后,但在这之前,此名变量已为‘undefined’;
输出:
3.浮点数运算BUG,例如7*0.8=5.6000000000000005;
4.变量传递,对象为引用传递,数字和字符串是值传递;即函数内不能改变变量地址
输出cccc,我是b2,bbbb,我是b1
CSS 美化复选框CHECKBOX-无图片方式
自定义input[type="file"]的样式
input[type="file"]的样式在各个浏览器中的表现不尽相同:
另外,当我们规定 input[type="file"] 的高度,并把它的行高设置成与其高度相等后,chrome中难看的样式出现了:
“未选择任何文件”这一行并没有竖直居中。
似乎在 firefox 中好看一些,嗯,我比较喜欢用 firefox。但是这些浏览器中的表现不一致,我们必须做兼容处理。
思路:
1. 自定义与其中一个浏览器表现类似的样式,将其放在下层;
2. 将浏览器本身的表现出来的样式“隐藏掉”, opacity: 0; 置于上层,这样我们点击的才是 input[type="file"] 响应的事件;
3. 选择文件或改变文件后,改变显示 file 的值。
代码:
html:
css:
js:
这样处理后,就在各个浏览器中表现一致了:
CSS 美化复选框CHECKBOX-无图片方式
自定义input[type="radio"]的样式
对于表单,input[type="radio"] 的样式总是不那么友好,在不同的浏览器中表现不一。
为了最大程度的显示出它们的差别,并且为了好看,首先定义了一些样式:
html:
css:
然后在各个浏览器中观察,会发现有很大的差别:
对于 firefox 浏览器,即便是设置了宽和高,依然是没有效果,input[type="radio"] 的那个圆圈还是初始状态那么大。其它浏览器的表现也不一致,为了达到一致的效果,我们需要做兼容处理。
思路:
1. 将 input[type="radio"] 隐藏, opacity: 0; 置于上层,当我们点击它时,就能正确的响应原本的事件。
2. 自定义一个圆圈,置于下层,模拟原本相似的样式;
3. 用 js 实现选中 input[type="radio"] 时,在其下层的自定义的元素改变原来的背景颜色。
代码:
html:
css:
js:
这样处理后,在浏览器中展示效果全部一样了:
扩展:
1. 对于代码中出现的定位,对父元素使用 position: relative; 给子元素使用 position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto; 能实现让子元素相对于父元素居中(满足水平居中和竖直居中)显示。如果只是需要竖直居中,则不需要添加 right: 0; 和 left: 0; 的样式。
2. 有时当我们不容易确定子元素的高度时,可以这样设置:对父元素 position: relative; 对子元素 position: absolute; top: 10px; bottom: 10px; margin: auto; 这样一来,子元素的高度就是父元素的高度减去20px后的值了,同样,top 和 bottom 支持百分数,可扩展性更强。
优化更新:
需求:
1. 有时候我们需要内联的单选样式;
2. 选中的按钮内的小圆圈不需要占满整个外圈的大小。
思路:
1. 让每一个包裹选择的 div 左浮动;
2. 给父元素添加圆形的外边框,子元素设置一个稍小于父元素大小的背景。
代码:
html:
css:
js:
效果显示如下:
常用html、demo代码
成功的故事只能倒叙着讲
JAVASCRIPT面向对象基础
最近学习了js的面向对象,
js通过函数来创建对象,而且js本身也是一种对象,那么什么又是对象呢,对象包含两种:1、属性(静态的特征)2、方法(动态的特征)。
通过js来创建对象:
2、用this关键字来设置属性和方法
调用:
3、设置object(对象)
成功的故事只能倒叙着讲
自动判断手机版和pc版
他不是脾气暴躁,只是不能被打扰
程序猿媳妇儿注意事项
十一年前我和程序猿第一次见面,还是大一军训期间。我甚至不确定程序猿是否记得那是第一次见面。当时不小心装伪文艺参加了吉他社,想借一本吉他入门书,然后同在吉他社热心的海哥说他一同学有,就带着我去拿书了。于是我们第一次“见面”了,我只看见一个对着电脑,佝偻着背的背影......严重怀疑程序猿根本没抬头看一眼那个已经晒得像反转熊猫一样的妹子,因为他递过来书以后,又迅速投入到了电脑的怀抱,相对应的,我也不记得他长什么样了。
我从来没有读懂过这个上天用那个背影给我的预警,于是堕入了一生的深渊。
当时的我对计算机、程序猿一无所知,只知道这些计算机系的,天然呆居多,玩游戏,不学习,民工气质愈演愈烈,穿着黄色民工拖鞋上课,在食堂和民工大哥们一起吃饭,头发不洗戴帽子遮,没衣服穿了从脏衣服堆里找,喝水的杯子长时间没刷竟然被蜜蜂筑了巢,天天拆别人电脑、烧别人电脑CPU或者对着电脑研究大便(debian)或者聚众看片儿..
即使程序猿后来文艺了一把还加入了一个乐队,当贝屎手,还是乐队里面最天然呆的,只会低头猛弹,不像主唱和吉他风骚。
经过初步了解,配电脑、修电脑、装系统等都可以找程序猿来干。而且程序猿不会油嘴滑舌的。很多妹子也都这么想的,于是大学四年,程序猿钻了不少次各种妹子宿舍,一去就一下午,他说装系统太慢,我暂且就信了吧。
程序猿大四差点没毕业,挂科十几门,从基础课的英语、高数、大物,到专业课的图形学什么的无一幸免,还好最后万分惊险,侥幸过关了。
我问他:你不是喜欢学计算机吗?怎么还学成一坨渣。他说:那些用过时教材的老师才教的是一坨渣。
事实证明,他是对的。我觉得有点莫名其妙,没见过他学习,原来也会写代码啊,还帮别人写了毕业论文,毕业了还顺利找到了工作。
关于毕业后的去向,程序猿是这么说的:国内也就北上广深还有点IT产业,你选个地方吧。我说:那就北京吧。这么着,我们就来帝都了。
七年前在北京,我们的第一份工作,程序猿的起薪还只有2500RMB,我找了份出版社的工作,起薪也是2500RMB。
刚开始工作的两年,在我记忆中是程序猿最最累的时候。两年时间,几乎没有休息过,周一至周五晚上加班到10点、11点以后才回来,甚至更晚或者通宵。周六日白天去公司加班。那时候还在做手机移植。人年轻,通宵一下还能扛得住,通宵后第二天还能继续上班。现在偶尔程序猿也会通宵发版,但是第二天几乎要休息大半天,不服年龄不行。
从大学的时候天天腻歪在一起到后来要适应等待程序猿加班的日子,习惯需要一个过程,也有始终习惯不了的,像我。直到现在,如果程序猿加班很晚回来,我都没有办法睡觉,一定要他回来才能睡,所以身体也跟着一起熬差了。
在北京工作了4年,我俩才考虑结婚,此时他已经换了一次工作,到了一家创业公司,开始做iOS。我比较佩服程序猿的一点在于他对行业发展还是比较敏感的,当时学习iOS就是个例证,以及自己没事儿吹牛说起大学就预测出微博类的产品会火,比特币刚出来几乎还没什么人知道的时候还挖了两天矿等等。但是不知此人是否天生命里没有横财,所以还只是勤勤恳恳打工过日子。
新换到创业公司也成了技术负责人,加班没那么猛了,但是也难看到出路,公司的风格很难改变,所以最后没有相信公司给出硕大的饼。我说如果公司真上市了,所有的期权加起来要上3000w? 程序猿很平静地说,放心吧,上不了市。
当时公司目标3年还是5年上市,忘记了,反正至今也没上市。
后来程序猿又经过人介绍来到现在的公司,也算国内比较大的公司了,于是又拼命了一段时间,疯狂地加班,后来还算好一些。
我俩原来薪水都差不多,于是我总说等你薪水是我两倍了,我就辞职。后来两倍了,我又反悔了,我说等你薪水是我三倍了,我就辞职。于是...现在我辞职了,做了儿童绘本微店斑马星空,我也希望能早点给他生个孩子,继承一下他的高智商和好脾气。孩子生下来就给摸键盘,三岁学汇编,四岁学C,五岁写操作系统...
七年,从一个年轻小伙熬成了大叔,体重从55kg变成了75kg,从天然呆的码农到在大公司的小经理。非常符合程序猿成长路线。不知是喜是忧。
既然已经嫁给程序猿这么多年了,虽然至今仍然是小白一枚,但是也能总结几点:
一要耐得住寂寞
程序猿永远陪伴电脑的时间比陪媳妇儿时间长,加班相当频繁,要锻炼自己独立入睡。
二要耐得住落寞
也不能说程序猿没有情趣,但是也不能太指望。自从结婚后没有过过任何的纪念日之类的。偶尔会在生日什么的给买个礼物,基本以电子设备为主。
三要照顾得了程序猿的生活
当然大部分的程序猿对衣食标准要求不高,但也别指望他们能做太多。某猿只会每天早上大喊没有袜子穿啦,没有T恤穿啦。
吃货程序猿也会做几个大菜,但是只是有客人来露一手用的。
四要给程序猿财务自由去买电子产品
比如1k多的机械键盘,1k多的耳机,各种Nk的游戏设备,还有很多其他七七八八的腕带啊之类的。总之要电子设备新出来什么,他们想买就得买,不然他们浑身难受。
五要会玩三国杀等各类纸牌游戏以及德州扑克
坐着不动又能彰显他们智商的牌类游戏最适合程序猿了。
六参加他们的TB活动的时候要能融入进去
比如吃饭就要低头猛吃,饮料猛喝。偶尔听见“来干一下”,就干一下,呵呵一笑,然后继续低头猛吃,饮料猛喝。吃完喝完三国杀或者德州扑克。
七要听懂一些基本术语
比如说bug等、各编程语言名称。能听懂基本的IT笑话,比如前两天刚懂了类风湿的笑话。在iOS的拼写上,不要犯大众错误。
八要崇拜乔布斯,要记住IT圈各大佬的名儿
没事儿多看看IT圈新闻。
九要提醒提防程序猿病
小心眼角膜炎、肩颈疾病、脂肪肝、腱鞘炎。
十不要太担心程序猿在男女问题方面出问题
相信他们更愿意娶个电脑。如果真的出了问题,可能他本质不是程序猿,而是产品或者设计狮。
十一不要让亲戚朋友们找程序猿买电脑攒电脑修电脑装系统
因为程序猿说了,他们不是卖电脑的。
十二最后一条也是最重要的,要赞美程序猿,欣赏他们的审美,因为编程也是一门艺术。
程序猿身上都是有某种气质的,不然现在我们不会那么轻易在大街上的人群中分辨出程序猿。
因为程序猿是有使命感的,他们定是感受到了命运的召唤,要用计算机改变和毁灭人类的未来,他们已经并即将做到。
向程序猿们致敬。
文/Arale(简书作者)
成功的故事只能倒叙着讲
“Galaxy Note7,Galaxy Note7,最新一代旗舰,这位先生,您就买一台吧!”小女孩的赤脚已经被冻得发紫,可是她已经一整天没有吃饭了,如果再卖不出一台手机,她就要饿死了。赶着回家过新年的男士笑着摇摇头,因为这些手机太昂贵了。
小女孩蜷缩在墙角,想起了自己的奶奶,拿出一台Note7,插上数据线,删掉温控文件,这样会让她暖和一些。 小女孩从破烂的连衣裙口袋里拿出了一个移动电源,想起了奶奶说过的话,给Note7充电会带给人们幸福。
她毫不犹豫地接上移动电源,一朵巨大的蘑菇盛开在大地上,这一天,无数人见到了他们的奶奶。
成功的故事只能倒叙着讲
鲁迅:“晚安!”。
语文老师:“晚安”中“晚” 字点明了时间,令人联想到天色已黑,象 征着当时社会的黑暗。而在这黑暗的天空 下人们却感到“安”,侧面反映了人民的麻木 ,而句末的感叹号体现了鲁迅对人民麻木 的“哀其不幸怒其不争”。
鲁迅:“。。。。”