HTTP协议之缓存(三)

发表于 | 分类于 网络

广义上的缓存不仅仅是Web缓存,还包括了像数据库缓存,服务端缓存,浏览器缓存,应用缓存等。我对于缓存的理解是,一份资源或数据,在他不改变的情况下,只有第一次的传输时有意义的。如果需要重新计算或发送一份完全相同的资源,会造成很大的浪费。这里要谈到的Web缓存指的是HTTP协议中规定的对请求资源的备份和缓存。

HTTP协议之报文(二)

发表于 | 分类于 网络

有一个经典的问题:在浏览器地址栏输入地址,然后回车,最后看见页面这个过程到底发生了什么?这个过程,用书面语来讲就是一个完整的__浏览器事务__。一个事务由一条请求命令(浏览器发往服务器)和一条响应结果(服务器发往浏览器)组成,而这种通信是通过__HTTP报文__进行的。学习HTTP,最基本的目标就是需要看懂HTTP报文。

HTTP协议之资源(一)

发表于 | 分类于 网络

Web资源是Web服务的基础,我们上网,归根到底就是为了获取资源;而整个互联网,就是为了将资源从一个地方传递到另一个地方。这里整理了资源类型,资源路径和动态资源网关这三个部分知识。

浏览器解析HTML的流程

发表于 | 分类于 前端/前端业务

很早之前就对浏览器加载整个页面文档以及相关的解析和渲染流程十分好奇,但是却一直没有深入。

尤其是JavaScript这块,只知道JavaScript是单线程模型,却对于这个概念却一直没有很理性的认识。

想到之前看见一篇关于浏览器中定时器的文章,介绍了浏览器中setTimeout的机制,才发现自己对关于页面上JavaScript的执行顺序给弄混了。

最近正重新阅读犀牛书,在第13章“Web浏览器中的JavaScript”中,终于得到了一些答案。

使用BEM声明CSS样式名

发表于 | 分类于 前端/CSS

折腾CSS类名已经很长一段时间了,也得到了一些教训和经验。维护CSS有几个比较困难的问题:

  • 默认全局命名空间,样式冲突十分常见
  • 混乱的样式重用或选择器的滥用,导致改动牵一发而动全身
  • 修改样式表的同时可能会改动页面结构,而且往往不只一个页面

之前的关注点是通过选择器嵌套和样式复用来决定样式名,由于过分考虑样式的复用,又没有进行正确的限制,样式耦合十分严重。

最后回过头一想,如果是使用类名来决定选择器的嵌套和样式重用,情形应该会怎么样呢?恰好之前也了解了一点BEM的东西,这篇文章是我关于BEM的思考和尝试。

RequireJS使用心得

发表于 | 分类于 前端/前端工程

一直对于JS模块化开发心存敬畏,尽管很早之前就接触到了RequireJS(在微擎里面),实际项目中却仍旧采用的是最原始的在HTML文档中script标签里面写代码。一方面是因为后台的同学有时候需要自己写JS处理逻辑;另一方面是后台模板将共用的头部样式表和底部脚本都分离为单独文件,管理起来也不是很麻烦。因此一直没有去了解require.js
最近一个多月一直在折腾新的博客,想着要不要试试require.js,然后一发不可收拾。

实现一个简易的PHP框架

发表于 | 分类于 技术原理

在11月份的时候,参照慕客网的视频,照猫画虎折腾了一个非常简陋的PHP框架半成品,简陋到只勉强实现了自动加载类和路由功能,由于功力不足暂时将这个小项目放在了旁边,到后面补习了一些PHP的基础知识,又花了大概一周的时间去了解Laravel,对于PHP框架的运行流程稍微长进了一点。现在趁着周末重新整理了之前的笔记:一个简易的PHP MVC框架的实现。

实现一个简易的JS模板引擎

发表于 | 分类于 技术原理

之前的项目中,通过ajax请求获得的数据,重新在页面上渲染出来,基本上都是采用字符串拼接或者定义一个type/html的script标签,然后通过jQuery查找结点然后插入数据的,在数据量不大的情况下,这么做貌似也没有什么问题。但是昨天遇见的情况是返回好评、中评、差评的多条数据,,且每天评论需要展示的内容十分多,因此考虑使用第三方的模板引擎库。

关于CSS的思考

发表于 | 分类于 前端/CSS

本文总结了之前关于CSS代码维护的思考关于CSS选择器命名的思考关于CSS选择器嵌套的思考这三篇文章的内容,是当时刚写前端时关于编写CSS引发的一些思考。

使用Node.js写爬虫(初级篇)

发表于 | 分类于 技术原理

最近两周,写爬虫写出魔怔了。很早之前就打算用Python写爬虫,可一直没有时间重新学习Python。刚好现在正在学习Nodejs,用JS写爬虫,实际上也很酷炫。额当然我现在也只会爬一些很简单的静态爬虫,这篇文章主要是整理一下这两周的心得,由于我也是爬虫菜鸟,如果有错误的地方还请指正,感激不尽。

《正则指引》读书笔记

发表于 | 分类于 读书笔记

爬虫真的非常有意思。为了更高效的处理获取的数据,开始正儿八经的学习正则表达式。

《计算机网络-自顶向下的方法》读书笔记

发表于 | 分类于 读书笔记

大概是几个月前,曾被赶鸭子上架似的学习了一阵子socket,作为没有一丁点网络基础的菜鸟,完全无从下手,靠死记硬背写了几端代码,最后还是将它搁在哪里了。在现在的前端工作中,仍免不了要跟网络请求打交道,然而只明白几个http状态码,调用个Ajax接口是远远不够的,带着弄明白“从浏览器地址栏输入网址到看见整个网页发生了什么”这个经典面试题的目的,打开了《计算机网络》这本书。

Flex布局

发表于 | 分类于 前端/CSS

最近在掘金上看见了一个叫做flex.css的项目:使用flex进行移动端的快速布局。之前在学习CSS3的时候还挣扎在定位和浮动的困惑无法自拔,后面的项目也未曾想到使用flex。因此翻开CSS手册,准备整理一下关于flex的知识。

SCSS进阶

发表于 | 分类于 前端/CSS

最近阅读了一个按钮样式库button.css,尽管源码是用scss写的,我却看懵了:别人写的scss和我写的完全不一样啊,各种数组各种循环...!

原本以为会用混合器和继承就差不多了,实际上还差的远了去了。

然而之前看的教程文档上也只有这些基础,然后一通查询,摸索了一些关于SCSS进阶的方法,整理如下。

初识Vue

发表于 | 分类于 前端/Vue

大约两个月前其实就已经去尝试学习了Vue(实际上就是看了看文档,云里雾里不知道什么意思),最近在使用原生PHP后端开发,完成第一个留言板的小项目之后着实被混杂的PHP和HTML代码给恶心到了,开始折腾如何分离代码。后来在论坛上看见一位前辈说初级的话不用去折腾什么页面静态化smarty之类的,使用include就够了,PHP本身就自带模板标签,那么怎么解决数据遍历的问题呢?突然灵机一动,想到了Vue(暴殄天物,让唾沫来淹死我吧...)下面重新过一遍文档(貌似现在是V2.0了)。

初识MySQL

发表于 | 分类于 后端/数据库

最近在练习一个后台小项目,随便规划了几个需求之后开始搭环境(好吧其实就是写了几个页面然后上ThinkPHP),当正儿八经的开始写后台项目的时候才发现,我对于MySQL的了解远远不够,赶紧恶补一番。

PHP基础入门

发表于 | 分类于 编程语言/PHP

大概是参加工作后的一个月吧开始学习PHP,最初只是草草地翻阅了一下手册,然后跟着后端的同学熟悉PHP框架开发,在ThinkPHP语法糖的诱惑下,一直没有深入PHP的基础知识(与其说是深入,不如说是了解)。PHP的函数十分繁杂,命名也比较混乱,然而项目中常规使用的函数:比如打印,判断,字符串,数组等函数和方法,应当是优先需要掌握的,因此重新整理有道云上面的笔记,进一步学习PHP。之后的目标是用PHP为我的小网站重新搭一遍(PS:自从用了Hexo,之前买的虚拟主机就一直撂在那里了...)

正则表达式之捕获

发表于 | 分类于 编程语言/JavaScript

最近刚好搞定CSS选择器命名的问题(勉强能够心平气和的写样式表,姑且算作是解决了一个疑问吧),然后开始阅读jQuery源码,虽然很早之前就曾经打开看过,当时看见第六十几行定义的几个正则,然后一脸蒙蔽,悻悻然关闭了编辑器。

然而,jQuery源码迟早是要读的,正则也是必须要掌握的,最重要的一点是:并没有什么知识是不可能学会的!既然如此,那就先从正则入手吧。

初识gulp

发表于 | 分类于 前端/前端工程

前端技术日新月异,现在在工作中也尝试着使用一些工具简化业务开发,比如Koala来编译SCSS,使用图好快来压缩图片等。

这些工具十分方便,但是也存在一个问题:面对不同的需求需要尝试使用不同的工具,而各个工具之间却没有任何之间联系,相当于我们仍然要手动管理最基本的流程,这样就不可避免地会出现错误。

碰巧最近被一个规模比较大的项目搞得心烦意乱(前期没有进行管理规划),痛定思过,开始捣鼓gulp。

《Sass与Compass实战》读书笔记

发表于 | 分类于 读书笔记

虽然最初使用Less写了两个项目,后来又转为Scss开发,经过短暂的语法学习就直接在生产环境中使用(没有人管...),不过使用的只是诸如变量,嵌套这一些比较基础的语法,时间久了就有一种"暴殄天物"的感觉。

所幸有网友推荐了这本《Sass与Compass实战》,带着“真正学会Scss,提高工作效率”的目的,以及那个困扰我许久许久的“选择器命名”问题,开始学习本书。

PS:书很薄,二百来页。