Livereload介绍

Livereload可理解为即时刷新,在前端开发中,开发者在编写或调试html/js/css代码后需要从编辑器切换到浏览器,再刷新浏览器才能看到页面变化,这种十分频繁的操作在一定程度上影响了工作效率,而Liverelod可以帮助我们ad解决了这个问题。

实现livereload有多种方式,可以借助Livereload软件加浏览器插件实现,也可以借助nodejs,通过gulp或者grunt这些task runner实现,但其基本原理都是一样的,即通过在本地开启一个websocket服务,检测文件变化,当文件被修改后触发livereload任务,推送消息给浏览器刷新页面。

在众多的实现方法中,相比nodejs代码实现,使用其他软件或浏览器插件显然没有必要,这里介绍gulp的实现方式,个人认为是比较简单快捷的方式。


gulpjs 实现 livereload

首先需要安装nodejs, 再安装 gulp, gulp-connect 模块

  $ sudo npm install -g gulp //全局安装gulp模块

切换到项目根目录下

  $ mkdir ~/gulptest && cd ~/gulptest
  $ npm init
  $ npm install --save-dev gulp gulp-connect
  $ touch gulpfile.js

在项目根目录下需要有gulpfile.js这个文件

var gulp = require('gulp'),
  connect = require('gulp-connect');

gulp.task('connect', function() {
  connect.server({
    root: 'app',
    livereload: true
  });
});

gulp.task('html', function () {
  gulp.src('./app/*.html')
    .pipe(connect.reload());
});

gulp.task('watch', function () {
  gulp.watch(['./app/*.html'], ['html']);
});

gulp.task('default', ['connect', 'watch']);

建立gulpfile.js文件后在根目录下运行命令:

  $ gulp

image

即可看到本地启动了web server和livereload server,现在打开http://localhost:8080 编辑html文件保存后就可以看到浏览器自动刷新。


使用yoeman generator生成已经整合livereload功能的项目脚手架

安装yeoman和相应的generator(generator-gulpx)

  $ sudo npm install -g yo generator-gulpx

新建项目

  $ mkdir ~/yogulpx/ && cd ~/yogulpx
  $ sudo yo gulpx
  $ gulp

可以看到借助yeoman generator可以很方便的构建项目,推荐使用


推荐观看:
gulp入门 (一个15分钟的介绍视频)

-fira-algorithm=CB是一种基于域的内联优化,它会检查每个域中的函数,并根据其可能的域特性和关系来决定内联哪些函数。它可以有效地避免潜在的低效内联,提高程序性能。 -fira-region=one是一种基于区域的内联优化,它将整个程序分解为一个或多个区域,并优化每个区域独立进行内联。 -flifetime-dse=2是一种用于处理变量和内存空间的优化算法,它会分析变量的生存期并对存储空间进行优化,从而减少内存的使用。 -freorder-blocks-algorithm=stc是一种基于统计的块重排优化算法,它会根据代码的使用情况和块的特征重新排列块,从而有效提高程序性能。 -fstack-reuse=none是一种用于控制堆栈空间分配的优化选项,它可以有效地避免在程序中过度分配堆栈空间,从而减少内存的使用。 -fvect-cost-model=dynamic是一种用于控制矢量化的优化选项,它会根据环境和代码的特征动态地调整矢量化的代价,从而提高程序性能。 -fbranch-target-load-optimize2是一种用于控制分支预测的优化选项,它会尝试更好地推测分支的结果,从而提高程序性能。 -fno-gcse-after-reload是一种禁用基于重新加载的全局代码搜索和优化的选项,它可以有效地避免重新加载过程中可能存在的低效性能问题。 -fno-live-range-shrinkage是一种禁用范围缩小的优化选项,它可以有效地避免过度缩小变量的使用范围,从而提高程序性能。 -fsched-spec-load是一种指定加载器的优化选项,它会根据给定的参数对载入器进行优化,从而提高程序性能。 -ftree-loop-distribute-patterns是一种用于优化循环体的选项,它会根据循环体的模式进行优化,从而降低程序运行时间。 -funswitch-loops是一种用于控制循环展开的优化选项,它会尝试优化循环展开,以减少编译时间。 -fsimd-cost-model=unlimited是一种用于控制SIMD的优化选项,它会尝试在程序中使用SIMD指令来提高程序性能,并且不限制SIMD指令的使用数量。 -fno-associative-math是一种禁用关联运算的优化选项,它可以有效地避免在程序中使用关联运算,从而提高程序性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值