Vue项目开发,nprogress进度条加载之超详细讲解及实战案例

Nprogress的默认进度条很细,它的设计灵感主要来源于 谷歌,YouTube

他的安装方式也很简单,你可以有两种使用方式:

  • 直接引入js和css文件
  • 使用npm安装的的方式

直接引入:

Npm安装:

你可以调用 start() 和done()来进行进度条的控制

如果你准备在jQuery的Ajax调用接口的时候使用它的话可以考虑将其绑定到 到jQuery ajaxStart和ajaxStop事件。

下面是一个简单的实例:

百分比设置

你可以调用.set(n)设置进度百分比,,其中n是0..1之间的数字。你可以手动的设置进度条的位置(百分百0.0~1.0之间)

设置进度条的递增

更改启动时使用的最小百分比。(默认值:0.08)

NProgress.configure({ minimum: 0.1 });

你甚至可以修改进度条的模板,但要保证在页面留有一个一个role=\’bar’元素。

});

可以使用easing (CSS easing字符串)和speed (ms)调整动画的设置。(默认值:ease和200)

你可以通过parent来设置进度条的父容器,默认父容器是body

另外 本插件的css体积很小,你可以使用它或者选择自己写一个也没问题。

在router/index.js中创建如下代码:

并在main.js中引入 ./router

nprogress 很优美、灵活,我们可以通过源码看到他的所有可以设置的参数

那么可以根据我们项目需求进行相应的设置。 欢迎关注交流批评指正。

jquery进度条插件有哪些,怎么使用jquery进度条

前端小伙伴们在开发中经常需要用到jquery进度条来增加交互感,今天就来介绍几种jquery插件。赶快用起来吧,非常好用哦。

有许多jQuery插件可以用来创建进度条,以下是一些流行的选择:

  1. jQuery UI Progressbar
  2. Bootstrap Progress Bar
  3. jQuery ProgressBar
  4. EasyPieChart
  5. progressbar.js

首先,你需要引入jQuery和jQuery UI库。

然后,你可以使用以下代码来创建一个进度条。

引入Bootstrap CSS和JS文件。

使用Bootstrap的进度条组件。

下载并引入jQuery ProgressBar插件。

使用jQuery ProgressBar插件。

php手把手教你做网站(二十四)jquery ajax上传大的附件

上传大的附件分为两种情况,

  1. 可以改变服务器配置;
  2. 不能改变配置;

第2种使用分片上传

优势:可以突破服务器上传大小的限制,可以web存储上传到哪一块了,在浏览器关闭或者刷新的情况下可以断点续传;

劣势:上传速度慢,在我本地电脑测试,200M的文件,改变配置按照正常方式上传大约需要12到15秒,但是使用第2种分片上传,大约需要40多秒,也就是所需时间是正常上传的3倍,我测试了for循环同时上传几个碎片,电脑直接很卡,点击别的浏览器或者文件夹之类的全部是没有响应,所以放弃了使用循环同时上传多个;

如果上传大的文件实现进度条是很有必要的,否则用户看不到进度会等得不耐烦了。

小的文件只需要2秒左右,是否有进度条没有关系。

第一种,在可以改变服务器配置的前提下

图1 带进度条文件上传

1、配置php.ini

  1. post_max_size post数据默认8M
  2. upload_tmp_dir 文件上传临时文件(upload_tmp_dir=\”E:\\temp8.0.11\”)
  3. upload_max_filesize 上传的大小默认2M
  4. max_execution_time 程序超时时间默认30秒

如果上传的文件比较大,以上4点都需要修改,特别是第2点,尽可能配置,否则上传最后会比较慢。

2、iis上传大小限制,可以在web.config直接修改,加入以下代码

<requestLimits maxAllowedContentLength=\”1073741824\” /> 这里是限制的大小,默认大小忘记了,我这里设置的是可以上传1G进行的测试。

3、nginx上传大小限制

  1. client_max_body_size 2000m; #upload size 随便写的2000M方便上传1G大小文件测试
  2. client_header_timeout 300;
  3. fastcgi_connect_timeout 300;
  4. fastcgi_send_timeout 300;
  5. fastcgi_read_timeout 300;
  6. fastcgi_request_buffering off;

我开始想把这些加到location / {}里边,提示错误client_header_timeout不允许放到里边,所以全部加到外边了,也就是server {}里边;

注意下第6点,如果不配置,nginx上传文件会存到缓存,然后再一点一点传到upload_tmp_dir的目录下,导致上传所需时间是iis的2倍。

4、html代码

5、css代码 用来设置进度条

6、js代码(jquery使用监听progress实现进度条功能)

7、后端php处理程序

第二种,不能改变服务器的配置使用分片上传

图2 进度条显示多少片

html,css不变,只是改变js,下面是用到的js代码

代码1:点击事件

代码2:uploadtp方法

php后端处理程序

说明:

  1. 返回代码0000上传完成,0001未完成继续上传,其他错误提示;
  2. 分片上传不能使用move_uploaded_file,而是使用file_put_contents追加
  3. file_put_contents追加用法file_put_contents(\”物理路径+文件名\”,\”追加的信息\”,FILE_APPEND);

nginx上传文件很慢

处理办法:关闭 fastcgi_request_buffering,如果不关闭,上传所需时间至少是iis的2倍;

具体操作:编辑nginx.conf,

server {

fastcgi_request_buffering off;

}

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。