Node

  • 写在最前

    近期读到了alsotang的node教程,对一些基础知识又有了些新认识,故重新梳理了一下,分享出来。这里是教程地址。

    本次使用了superagent、cheerio来爬取知乎的发现页文章列表,通过async来控制并发数来动态获取延时加载的文章。源码地址,以及作者的blog欢迎关注,不定期更新中——

    实现步骤

    • 搭建http服务
    • 通过superagent获取页面html
    • 使用cheerio提取html相应字段
    • 使用async第三方库进行并发控制

    搭建http服务

    // Spider.js
    var http = require('http')
    const server = http.c
  • 写在最前

    一直想实现一个聊天应用demo,尝试一下Socket.IO这个框架,同时看到网上的教程很多关于使用node开发聊天应用的demo都是聊天室形式的,也就是群聊,很少有实现私聊的。所以想自己实现一次。另外还尝试了在上传头像的时候接入腾讯云的万象优图API来上传下载注册用户的头像,事实证明确实蛮好用的=。=,只不过那个部署接口的服务器不知道什么时候就会没钱租了,所以可能并不能跑通上传功能T T。github地址

    一、技术简介

    Vue

    Vue.js是一款在2014年2月开源的前端MVVM开发框架,其内容核心为为开发者提供简洁的API,并且通过实现高效的数据绑定来构建一个可复用的组件系统。

  • 写在最前

    在平时的前端开发中我们经常会遇到这种操作。明明我代码更新了,咋刷出来还是以前的呢?是不是缓存了?快清下缓存看看!你看页面是304,怪不得没更新!等等很多情况。作者起初也不是很了解,因为这个不由前端来控制,都是后端的操作。故这次使用node也来写一个控制缓存的服务来真正搞明白这里的道道。欢迎关注我的博客,不定期更新中——

    浏览器缓存机制

    在说这个服务如何写之前我们先要明白浏览器缓存到底是个啥。来看下这个简略示意图:

    可以看到浏览器的缓存机制分为两个部分。1、当前缓存是否过期?2、服务器中的文件是否有改动?

    第一步:判断当前缓存是否过期

    这是判断是否启用缓存的第一步。如果浏览器通过某些

  • 写在最前

    本次的分享一段代码来重新认识在V8的垃圾回收机制。
    欢迎关注我的博客,不定期更新中——

    一段来自meteor工程师提出的导致内存泄漏的代码

    var theThing = null  
    var replaceThing = function () {
      var originalThing = theThing
      var unused = function () {
        if (originalThing)
          console.log("hi")
      }
      theThing = {
        longStr: new Array(1000000).join('*'),
     

  • 写在最前


    本次分享一个简易路径替换工具。功能很简单,重点在于掌握:

    • 递归遍历文件夹目录
    • 正则替换目标内容
    • 解压上传文件,返回更新后的压缩文件

    源码地址:https://github.com/Aaaaaaaty/Blog/tree/master/fsPathSys

    效果预览

    在线预览

    结果对比图:

    wechatimg24

    PS:后端支持匹配js、css、img、background-image的url的对应路径并进行分别替换,当前只是展示方便,前端只传递一个路径将所有匹配的源路径替换为目标路径。

    整体流程

    1. 前端上传压缩包及需要替换的路径字段
    2. 后端解压缩
    3. 递归文件目录,找到.js/.css/.html文件并匹配