一说到页面的性能优化,大家可能都会想起雅虎军规、2-5-8原则、3秒钟首屏指标等规则,这些规则在开发过程中不是强制要求的,但是有时候为了追求页面性能的完美和体验,就不得不对原有的代码进行修改和优化。...下面整理出一些常用的性能优化要点,同时再罗列一下雅虎军规、2-5-8原则、3秒钟首屏指标这三个常用规则的要点。...,节省加载时间,所有静态资源都要在服务器端设置缓存,并且尽量使用长缓存(「使用时间戳更新缓存」) 缓存一切可缓存的资源 使用长缓存 使用外联的样式和脚本 「压缩代码」:减少资源大小可加快网页显示速度,...「首屏加载」:首屏快速显示可大大提升用户对页面速度的感知,应尽量针对首屏的快速显示做优化 「按需加载」:将不影响首屏的资源和当前屏幕不用的资源放到用户需要时才加载,可大大提升显示速度和降低总体流量(「...」:过多的font-size影响CSS树的效率 「值为0时不需要任何单位」:为了浏览器的兼容性和性能,值为0时不要带单位 「标准化各种浏览器前缀」 无前缀属性应放在最后 CSS动画属性只用-webkit
之前有同学跟我说过,老尚,我学了html、css、js和框架了,然后接下来我该学什么呢?言下之意,“我得再学哪些东西,才能写出来很牛b、很厉害的前端应用呢?”...我一般会回答,“你先写啊,先写一些小东西,小demo,小项目,然后再把它们拼合起来搞成一个大项目,先从量的方面下功夫,然后再提升质的方面”。 “喔,明白了,谢谢”,聊天结束。...为什么会这样? 因为错把学习前端技术本身,当成了前端开发技能的全部。 结果是什么? 用了很长时间在前端技术上,但要做什么东西,却没有思路,无从下手。 WEB前端开发是一门实践性很强的职业技能。我这句话一出来,可能有同学要喷我,“前端开发是技术、是科学。你用职业技能来形容它是拉低了它的身价”。...,然后下一周要做什么东西,它的结构是怎么样的?
这种"通知"的事情,一种办法是用轮询实现, 程序B不断地查数据库,看看有没有新数据的到来, 但是这种方法效率很低。...更直接的办法是让应用程序之间直接交互,例如程序A调用程序B的RESTful API。 但问题是程序B如果暂时不可用,程序A就会比较悲催,怎么办呢?等一会儿再试? 如果程序B还不行,那就循环再试。...可是传统的MQ也有问题,通常情况下,一个消息确认被读取以后,就会被删除。如果来了一个新的程序C,也想读之前的消息,或者说之前一段时间的消息,传统MQ表示无能无力。...例如:程序B读到了编号为3的消息, 程序C读到了编号为5的消息, 这时候来了一个新的程序D,可以从头开始读。...当然,Kafka做的远不止于此,它还充分利用硬盘顺序化读取速度快的特性,再加上分区,备份等高可用特性, 一个高吞吐量的分布式发布订阅消息系统就诞生了。
这种汹涌澎拜的斗争是我经常要面对的,而且显然会困扰许多软件开发人员。 2.“为什么这个脚本需要这么多库?”...值得庆幸的是,这样的日子正在慢慢成为过去。 ? 5.“对于逻辑表达式而言,这似乎并不怎么合乎逻辑。” 对于 if / else 循环,for 循环,while 循环,do 循环等等,都有逻辑表达式。...“哦,天哪,我以前为什么不写点注释呢?” 当涉及到比较基础的前端 HTML / CSS / JS 时,我们没有必要写注释。...当我一筹莫展时,我往往会选择从头开始,因为这样才有可能找到完成项目的正确道路。 为什么程序员发现不了自己的 Bug? ?...作为开发就和我们成人一样看到问题总是以自己的世界观来理解,导致理所当然的就这样就对了,而真正的真相就被隐藏了。 当程序员面对 Bug 的时候,如何机智甩锅?
,会主动在内存中开辟一块空间存储响应的值,所以不满足和自动装箱和valueOf()得到的值指向相同的内存空间。...那么java中是如何做到所有的自动装箱和valueOf()指向的相同的对象呢?...127-(-128) + 1的Integer数组,+1就是要缓存0,最后循环为数组赋值,最后cache[]中存放了-128~-1、0和1~127的数组。...可以看到,我们打印出了false,也就是说Integer.valueOf(256) != Integer.valueOf(256),为什么呢?...介于本人公众号刚刚开通打赏功能,如果非要打赏,我也是不排斥的,哈哈!
练习 32:做决策 在这本书的前半部分,你主要只是打印出一些称为“函数”的东西,但一切基本上都是直线的。你的脚本从顶部开始运行,一直到底部结束。...我现在不会告诉你。你必须自己弄清楚。 在使用for-loop之前,你需要一种方法来存储循环的结果。最好的方法是使用lists。Lists正是它们的名字所说的:一个按照从头到尾顺序组织的东西的容器。...每当遇到这样的情况时,总是尝试在 Python shell 中进行交互操作。 练习 34:While 循环 现在让我们用一个新的循环完全震惊你,while-loop。...while循环的问题在于:有时它们不会停止。如果你的意图只是一直循环直到宇宙的尽头,那么这很好。否则,你几乎总是希望你的循环最终会结束。...你实际上应该有足够的知识来阅读,但也许不理解代码的作用。这节课教你如何应用你学到的东西来理解别人的代码。 首先,打印出你想要理解的代码。
问题描述 我们都知道,如果我们对于一组元素(相同的标签)同时进行onclick事件处理的时候(在需要获取到索引的时候),一般是写一个for循环,但是onclick是一个异步调用的,所以会带来一个问题,当我们触发这个事件的时候...,会分别的打印出0、1、2、3、4,然而事与愿为,现实和理想总是存在差距,点击不同的按钮,打印却都是5,百思不得其解,不科学啊! ...,但是是为什么呢? ...i的值,这样function中的就不会随着循环中的i的值的改变而改变了,就可以打印出你要的结果了。...原理: 闭包的局部作用域。由于这个你们函数总是和代码执行顺序一样的,所以n可以实时记录i的值。
我认为 JavaScript 中的闭包是一个高级话题,是一个面试中经常被提到的问题。 若你读了我之前的文章或了解 JavaScript 中的作用域,那理解闭包会轻松些。...这种垃圾收集器的行为并不仅仅局限于子函数,若一个变量只要任何一个东西对它存在引用就不会被垃圾收集器回收。...console.log(i); }, 1000); } 若你猜间隔一秒打印出 0 到 5,你会感到惊讶。...循环中的 var 声明了函数作用域的变量 i,这就导致循环中绑定了同一个变量 i 。当 6 次倒计时结束后,它们都使用了最后相同的值 6 。...let 创建的是块级作用域当用在循环中时,为每次循环创建了一个绑定。循环中的每次倒计时获得了从 0 到 5 不同的值。
问题特别简单,就一句话: 谁能给我解释一下:为什么这段代码使用随机字符串打印出了 hello world?...这是为什么呢? 答案就在 Javadoc 上写着的: 如果用相同的种子创建了两个 Random 的实例,并且对每个实例进行了相同的方法调用序列,那么它们将生成并返回相同的数字序列。...然后这个问题下面还有个评论,让我看到了另外一种打开方式: 你能指定打印出 hello world,那么理论上我也能指定打出其他的单词。...在 generateSeed 方法里面,通过 26 个字母不断的排列组合,总是能排列出 “thank” 的,只是时间长短而已。 单词越长,需要的时间就越长。...至此,你应该完全明白了为什么前面提到的那段代码,使用随机字符串的方式打印出了 hello world。 源码 你以为我要带你读源码? 不是的,我主要带你吃瓜。
我们会包含: 一些bash基础知识(“你怎么写一个for循环”) 杂项事宜(“总是引用你的bash变量”) bash脚本安全提示(“总是使用set -u”) 如果你编写shell脚本,并且你没有阅读这篇文章中其他任何内容...我真的曾认为我已经知道这些东西了,但是通过写这篇文章我依旧学到了一些东西,也许你也会有所收获。...还有 局部变量 ,它们的作用域只能存在于bash函数中。 我基本上从来没有使用过这样的函数(不像我写的其他编程语言),我从来没有使用过局部变量。 for循环 以下是我在bash中编写循环的方法。...此循环将从1打印到10。...我肯定不能。 总是引用你的 bash 变量,你会更快乐的。 返回代码, &&, 和 `|| 每个 Unix 程序都有一个“返回代码”,它是一个从0到127的整数。0表示成功,其他都意味着失败。
while循环的基本语句如下: while 判断条件: (我是缩进占位符)循环内要执行的语句 判断条件为真,则执行while内语句,为假不执行!...上期结尾input说他会回来的,那我们满足一下他的心愿吧! 我们看一下上一个图片,是不是输入结束后,程序还是把结束打印出来了! 提个问题,我们上一个图片的程序While判断执行了几次?...为什么是四次呢!...四、最后分享一个小东西continue,顺便聊聊缩进的那点事!...我们看一下这段代码,本段代码没有任何输出结果,证明print函数从来没有被执行过,为什么没有执行呢!因为print与continue缩进相同,隶属于if函数内。
is %0d”, i ,i ); join_none 大家先不看答案,先猜猜,这个会怎么打?...算了,jerry先猜猜你们是怎么想的?是不是打印出下面这样?...我0-9怎么还出来10了? ? 3. 再认识下for循环 先解释下这个for循环范围0-9,怎么打出来10了?...is 1 No2,My face_grade is 2 No3,My face_grade is 3 …… No9,My face_grade is 9 为什么呢?...各位初学者可以这样简单的理解这段代码,但是其实呢要更进一步探究就涉及到了 sv的仿真调度机制!!! 先简单看一眼,就是这些个东西啦: ? 我擦,短短几句代码需要想到这么多知识吗?
公司的这个制度这么烂,一点都不人性化,为什么不xxx改一下! 我觉得我这个点子非常好,只是没有技术团队帮我实现,否则肯定会一夜爆火!...二、莫对他人他事打标签 我们其实很容易对信息的判断,对事物的本质,用最简单,最粗浅的方式去理解,一个典型标志就是,打标签。...我很不喜欢打标签这个事,主要原因在于人一旦给别人打上了某种标签,就不会去深入解析和思考其差异和内在逻辑。...,我会说“这个不就是这个创始人的个人IP很强产生的明星效应嘛” 我在大多的时候用一些非常标签化的定义来分析别人的成功案例,但实际上,还有很多细节和深入的东西,就这样被思维的惰性所无视。...这些年,我总是用这样的浅薄判断,就自认为找到了别人成功的法门,却不知我根本就没看到别人成功真相的1%,更不用说去复制别人成功的经验。
接着就是各种急躁,东打一枪,西打一枪,一会去学maven,一会又去学h5。 看了半天又看不懂,这是最麻烦的事。说到底,我不过是在寻求一些心理安慰,生怕被这个技术潮流劝退。...这时候我想,为什么半年前让我画一个html简直能要了我的命,而现在闭着眼睛都能快速的调样式对比之前那位大牛,我豁然开朗,没有为什么,原因只是我写的多了。 我不得不承认,真的有一种类似于内力的东西。...总是把希望寄托在下一个网页上。) 而老司机是这么想的: “妈了个鸡蛋糕,劳资干了这么长时间,什么问题没碰到过,还怕了你不成。”...03 “内力”这个东西,虽然玄乎,但的确存在。就好像游戏里面打怪升级,你副本刷得多了,哪怕一直打哥布林,也是有经验值可以拿的,升级真的只是时间问题。...于是演变为一种不愿意自己思考,一有问题就问,一有问题就问的恶性循环。时间长了,必然遭到同事的反感。 这就好比,为了迅速获得大师成就,你拿着新手村送的木剑,去挑战终级BOSS一样。
,时间虽短,但是学习到了很多东西这里做一下简短的总结 背景 学院大三的期末似乎总是这样,会在6月初的时候不是自己出去找到实习,不然就会要求你去到学校安排的实习中去(自己选择实习的方向),所以在我选择了Java...帮忙搞的东西 今天算是回到学校实习大队伍,但是回来的第一天老师就请假,负责老师就开始叫组长出去商量搞什么活动玩儿什么...我也是一脸懵;虽然一直都是打辅助,搞一些简单的东西,但还是搞过一些东西的,这里总结一下...有一些代码注释没对齐之类的我给搞好看了,有一些 For 循环里新建冗余类的我给搞出来了......,很感恩那个项目负责人晚上还把我拉住说了我一顿,虽然明面上是给我建议,但其实就是在讲我是一个辣鸡,hhh....还是做一下简单的总结吧: 不要总是“我以为....”...就比如他们分页栏右边给搞了一个可以设置每页显示多少数据的这么一个东西,我测试了几下没有用,发现代码上是在基类上写死了每页显示20行数据,我要去把这个改掉,第一反应就是找个快捷键把所有的相同语句给改掉,但是前辈说最好别这样
),之后我们根据这个字符串内容做出判断,从而打印出不同的内容 如果对照中文意思,如图: 上面重点关注的是,怎么对比出来 变量 env_tmr 的内容是不是符合我们的要求。...没有"如果",那么"否则"是没有任何意义的 > if True : 下方有相同缩进的语句,会被归入 if 的代码区,else 同样如此 来看看如何表达:"如果下雨,我拿伞,然后出门": - 现在不需要表达...我们之前有学过用变量表示一个值(可以是数值也可以是文本),但有时候我们希望表达一系列的值,比如:从0到10的10个数值 Python 中有许多不同类型的东西可以表达这语义,这里简单介绍列表: - [1,2,3...遍历与循环 如果我们需要从一个序列中获取每个值做处理,难道要一次次写 nums[0]、nums[1] 的代码吗?...表达:"从变量 nums 中获取每个数值,然后打印出来" 的同语义代码如下: - for n in nums: 表示"从变量 nums 中获取每个数值"。
),之后我们根据这个字符串内容做出判断,从而打印出不同的内容 如果对照中文意思,如图: 上面重点关注的是,怎么对比出来 变量 env_tmr 的内容是不是符合我们的要求。...没有"如果",那么"否则"是没有任何意义的 > if True : 下方有相同缩进的语句,会被归入 if 的代码区,else 同样如此 来看看如何表达:"如果下雨,我拿伞,然后出门": - 现在不需要表达...我们之前有学过用变量表示一个值(可以是数值也可以是文本),但有时候我们希望表达一系列的值,比如:从0到10的10个数值 Python 中有许多不同类型的东西可以表达这语义,这里简单介绍列表: - [1,2,3...遍历与循环 如果我们需要从一个序列中获取每个值做处理,难道要一次次写 nums[0]、nums[1] 的代码吗?...表达:"从变量 nums 中获取每个数值,然后打印出来" 的同语义代码如下: - for n in nums: 表示"从变量 nums 中获取每个数值"。 - 通常来说,你都需要获取当前处理的数值。
,时间虽短,但是学习到了很多东西这里做一下简短的总结 背景 学院大三的期末似乎总是这样,会在6月初的时候不是自己出去找到实习,不然就会要求你去到学校安排的实习中去(自己选择实习的方向),所以在我选择了...帮忙搞的东西 今天算是回到学校实习大队伍,但是回来的第一天老师就请假,负责老师就开始叫组长出去商量搞什么活动玩儿什么...我也是一脸懵;虽然一直都是打辅助,搞一些简单的东西,但还是搞过一些东西的,这里总结一下...有一些代码注释没对齐之类的我给搞好看了,有一些 For 循环里新建冗余类的我给搞出来了......,很感恩那个项目负责人晚上还把我拉住说了我一顿,虽然明面上是给我建议,但其实就是在讲我是一个辣鸡,hhh....还是做一下简单的总结吧: 不要总是“我以为....”...就比如他们分页栏右边给搞了一个可以设置每页显示多少数据的这么一个东西,我测试了几下没有用,发现代码上是在基类上写死了每页显示20行数据,我要去把这个改掉,第一反应就是找个快捷键把所有的相同语句给改掉,但是前辈说最好别这样
在启动的时候,感觉整个vm都挂了。。。 ? 嗯,至此。。进入了无限重启的循环。 解决之道 既然容器进入了一个循环,,查看相关的系统日志,变更导致的故障?...至此问题解决,主要原因就是因为内存和CPU不足,然后重启策略是无限重启,从而导致容器进入了重启循环。。。 ? 风言风语 最近总是发现有几个虚拟机无辜重启,对,是无辜的。。。也不知道是啥原因。。。...标签,我们总是喜欢打标签,例如你是个逗比,他是个傻逼。。。...好像也没啥魔力,在k8s中,pod也是根据标签找到相关的容器。。。 举一反三的能力。。。嗯。。。有点意思。 有的时候看各种熟悉的东西,我草,那看书的速度。。。...一天恨不得一本书;看不熟悉的东西,我草,头疼,那看书的速度。。。还要配合谷歌翻译才能看的懂。。。 在编程中,我们要使用各种数据结构,那么你为什么要选择list而不是map或者dictionary?
领取专属 10元无门槛券
手把手带您无忧上云