使用ajax時給ajax綁定上一個進度條的簡單示例


直接放代碼。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<input type="file"  id="myFile"/>

<progress id="myProgress" value="0"></progress>
<hr/>

<script src="${pageContext.request.contextPath}/js/jquery-1.12.3.js"></script>
<script>//第一種方式,ajax綁定進度條
    $("#myFile").change(function () {
        var formData = new FormData();
        formData.append("filename",$(this)[0].files[0]);

        $.ajax({
            method: "post",//請求方式
            url: "xxxx",//請求服務端地址
            data: formData, //這里上傳的數據使用了formData 對象
            contentType: false,//避免JQuery操作頭部信息,丟失邊界符,從而使服務端無法識別此編碼類型文件
            processData: false,//不序列化將要傳輸的文件數據
            xhr: function () {
                //這里我們先拿到jQuery產生的 XMLHttpRequest對象,為其增加 progress 事件綁定,然后再返回交給ajax使用
                var xhr = $.ajaxSettings.xhr();
                if (onprogress && xhr.upload) {
                    xhr.upload.addEventListener("progress", onprogress, false);
                    return xhr;
                }
            },
            success:function () {//完成事件時
                
            },
            error:function () {//出現錯誤時的事件

            }
        });
    });
    /**
     * 偵查附件上傳情況 ,這個方法大概0.05-0.1秒執行一次
     */
    function onprogress(evt) {
        var loaded = evt.loaded;     //已經上傳大小情況
        var tot = evt.total;      //附件總大小
        var per = Math.floor(100 * loaded / tot);  //已經上傳的百分比
        $("#myProgress").attr("value",per);
    }


</script>
</body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM