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插件可以用来创建进度条,以下是一些流行的选择:
- jQuery UI Progressbar
- Bootstrap Progress Bar
- jQuery ProgressBar
- EasyPieChart
- progressbar.js
首先,你需要引入jQuery和jQuery UI库。
然后,你可以使用以下代码来创建一个进度条。
引入Bootstrap CSS和JS文件。
使用Bootstrap的进度条组件。
下载并引入jQuery ProgressBar插件。
使用jQuery ProgressBar插件。
php手把手教你做网站(二十四)jquery ajax上传大的附件
上传大的附件分为两种情况,
- 可以改变服务器配置;
- 不能改变配置;
第2种使用分片上传
优势:可以突破服务器上传大小的限制,可以web存储上传到哪一块了,在浏览器关闭或者刷新的情况下可以断点续传;
劣势:上传速度慢,在我本地电脑测试,200M的文件,改变配置按照正常方式上传大约需要12到15秒,但是使用第2种分片上传,大约需要40多秒,也就是所需时间是正常上传的3倍,我测试了for循环同时上传几个碎片,电脑直接很卡,点击别的浏览器或者文件夹之类的全部是没有响应,所以放弃了使用循环同时上传多个;
如果上传大的文件实现进度条是很有必要的,否则用户看不到进度会等得不耐烦了。
小的文件只需要2秒左右,是否有进度条没有关系。
第一种,在可以改变服务器配置的前提下
图1 带进度条文件上传
1、配置php.ini
- post_max_size post数据默认8M
- upload_tmp_dir 文件上传临时文件(upload_tmp_dir=\”E:\\temp8.0.11\”)
- upload_max_filesize 上传的大小默认2M
- max_execution_time 程序超时时间默认30秒
如果上传的文件比较大,以上4点都需要修改,特别是第2点,尽可能配置,否则上传最后会比较慢。
2、iis上传大小限制,可以在web.config直接修改,加入以下代码
<requestLimits maxAllowedContentLength=\”1073741824\” /> 这里是限制的大小,默认大小忘记了,我这里设置的是可以上传1G进行的测试。
3、nginx上传大小限制
- client_max_body_size 2000m; #upload size 随便写的2000M方便上传1G大小文件测试
- client_header_timeout 300;
- fastcgi_connect_timeout 300;
- fastcgi_send_timeout 300;
- fastcgi_read_timeout 300;
- 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后端处理程序
说明:
- 返回代码0000上传完成,0001未完成继续上传,其他错误提示;
- 分片上传不能使用move_uploaded_file,而是使用file_put_contents追加
- 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
文章为作者独立观点不代本网立场,未经允许不得转载。