<div style='--en-codeblock:true;--en-blockId:2lt7TSyjV1n;--en-meta:{"title":"","lang":"Python","theme":"default","showLine":true,"lineWrap":false};box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, "Courier New", monospace; font-size: 12px; color: rgb(51, 51, 51); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.14902); background-position: initial initial; background-repeat: initial initial; margin-top: 6px;'><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Layui 进度条 AJAX 示例</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layui-v2.5.7/dist/css/layui.css">
</head>
<body>
<div class="layui-progress" lay-showpercent="yes" lay-filter="demo">
<div class="layui-progress-bar" lay-percent="0%"></div>
</div>
<script src="https://cdn.jsdelivr.net/npm/layui-v2.5.7/dist/layui.js"></script>
</body>
</html>
</div>
<div style='--en-codeblock:true;--en-blockId:PBNCTe63W9r;--en-meta:{"title":"","lang":"Python","theme":"default","showLine":true,"lineWrap":false};box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, "Courier New", monospace; font-size: 12px; color: rgb(51, 51, 51); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.14902); background-position: initial initial; background-repeat: initial initial; margin-top: 6px;'><script>
layui.use(['element', 'jquery'], function() {
var element = layui.element;
var $ = layui.jquery;
// 模拟 AJAX 请求
function simulateAjaxRequest(callback) {
var total = 100;
var interval = setInterval(function() {
total -= 10;
if (total <= 0) {
clearInterval(interval);
callback();
}
element.progress('demo', (100 - total) + '%');
}, 500);
}
// 模拟 AJAX 请求完成后的回调
function onAjaxComplete() {
alert('数据加载完成!');
}
// 触发 AJAX 请求
$('#start-ajax').on('click', function() {
simulateAjaxRequest(onAjaxComplete);
});
});
</script>
<button id="start-ajax" class="layui-btn">开始 AJAX 请求</button>
</div>
<div style='--en-codeblock:true;--en-blockId:dBx1SKBnWcX;--en-meta:{"title":"","lang":"Python","theme":"default","showLine":true,"lineWrap":false};box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, "Courier New", monospace; font-size: 12px; color: rgb(51, 51, 51); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.14902); background-position: initial initial; background-repeat: initial initial; margin-top: 6px;'><script>
layui.use(['element', 'jquery'], function() {
var element = layui.element;
var $ = layui.jquery;
// 实际的 AJAX 请求
function performAjaxRequest(callback) {
$.ajax({
url: 'your-api-endpoint',
type: 'GET',
dataType: 'json',
xhr: function() {
var xhr = $.ajaxSettings.xhr();
if (xhr.upload) {
xhr.upload.addEventListener('progress', function(e) {
if (e.lengthComputable) {
var percent = Math.round((e.loaded / e.total) * 100);
element.progress('demo', percent + '%');
}
}, false);
}
return xhr;
},
success: function(response) {
callback(response);
},
error: function(xhr, status, error) {
console.error('请求失败: ' + error);
}
});
}
// 模拟 AJAX 请求完成后的回调
function onAjaxComplete(response) {
alert('数据加载完成!' + JSON.stringify(response));
}
// 触发 AJAX 请求
$('#start-ajax').on('click', function() {
performAjaxRequest(onAjaxComplete);
});
});
</script>
<button id="start-ajax" class="layui-btn">开始 AJAX 请求</button>
</div>
💬 评论交流
这个技巧很实用,感谢分享!