//检验非空和文件大小
if($(this).val() !== '' &&checkSize(this)) {//其他操作
}
})/**
* 函数:检查上传文件大小
* 输入:input的js对象
* 输出:
**/function checkSize(input) {
var Sys = {} var flag var filesize = 0 //判断浏览器种类
if (navigator.userAgent.indexOf("MSIE") >0) {
Sys.ie=true
}if (navigator.userAgent.indexOf("Firefox")>0) {
Sys.firefox=true
}//获取文件大小
if (Sys.firefox) {
filesize = input.files[0].size
} else if (Sys.ie){var fileobject = new ActiveXObject ("Scripting.FileSystemObject")//获取上传文件的对象
var file = fileobject.GetFile (input.value)//获取上传的文件
filesize = file.Size//文件大小
}//判断是否符合要求
if (filesize / (1024 * 1024) <5 ) {
flag = true
} else {
alert("附件过大,建议不要超过5M!")
flag = false
}return flag
}
1. 将你的JS文件进行压缩,百度一下,工具一把2. 服务器端开启gzip压缩
3. 如果你是3个单独的JS,那么你可以合成1个文件,减少请求次数
4. 将你的<script>标签写在页面底部<body>标签结束之前
5. 检查你的js中是否存在特别耗时的逻辑,因为脚本加载时阻塞式的,它会加载完并执行完之后,才会加载其它资源,因此慢并不一定是文件大,也可能是文件执行花了很长时间
6. 如果还是觉得很慢,你可以使用动态加载,不要直接在页面中写<script>标签,而是动态创建一个<script>将该脚本引进来,这样的加载方式是非阻塞式的,不会影响其它资源加载。
7. 上面方法全用了,还是觉得很慢,那你应该检查你的服务器和网络情况,因为按理来说100多kb的脚本不至于慢到不可接受的地步。
8. 将页面中的资源分散到多个一级或二级域名,因为浏览器对同一个域名同时加载的资源数量是有限制的
9. 如果你还是觉得很慢,那就玩些高级玩意儿吧(如使用CDN加速等)
10. 上面方法都试过,还是不奏效?那我也没辙了,除非能现场分析。
这样设置的:
1、先用form标签创建一个上传的表单。
<form id="form1" name="form1" method="post" action="" enctype="multipart/form-data"><p><input type="hidden" name="MAX_FILE_SIZE" value="100000" /></p>
<p><input name="userfile" id="userfile" type="file" onchange="check()"/></p>
</form>
2、用Javascript设置格式和大小。
<script language="JavaScript" type="text/javascript"> function check() {var aa=document.getElementById("userfile").value.toLowerCase().split('.')//以“.”分隔上传文件字符串 // var aa=document.form1.userfile.value.toLowerCase().split('.')//以“.”分隔上传文件字符串 if(document.form1.userfile.value=="") { alert('图片不能为空!') return false } else { if(aa[aa.length-1]=='gif'||aa[aa.length-1]=='jpg'||aa[aa.length-1]=='bmp'||aa[aa.length-1]=='png'||aa[aa.length-1]=='jpeg')//判断图片格式 {var imagSize = document.getElementById("userfile").files[0].sizealert("图片大小:"+imagSize+"B")if(imagSize<1024*1024*1) alert("图片大小在1M以内,为:"+imagSize/(1024*1024)+"M") return true } else { alert('请选择格式为*.jpg、*.gif、*.bmp、*.png、*.jpeg 的图片')// return false } } } </script>
图片超过1M则不能上传 如图: