一个页面上有10个订单,每个订单信息通过 /api/order/{id}获取详细信息, 点击一个"刷新"按钮重新获取订单信息,并按订单最后更新时间倒序排列。(用原生JS,不能用代码生成工具)
时间: 2024-02-11 15:08:30 浏览: 200
可以按照以下步骤实现:
1. 在页面上添加一个"刷新"按钮。
2. 为刷新按钮添加点击事件处理函数。
3. 在点击事件处理函数中,使用原生JS的`XMLHttpRequest`对象向后端发送请求,获取最新的订单信息。
4. 解析返回的订单信息,将其按照最后更新时间倒序排列。
5. 更新页面上的订单列表,显示最新的订单信息。
下面是示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>Order List</title>
</head>
<body>
<h1>Order List</h1>
<button id="refreshButton">Refresh</button>
<table id="orderTable">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Last Update Time</th>
</tr>
</thead>
<tbody>
<!-- 订单列表 -->
</tbody>
</table>
<script>
// 获取刷新按钮和订单表格
var refreshButton = document.getElementById("refreshButton");
var orderTable = document.getElementById("orderTable");
// 添加刷新按钮的点击事件处理函数
refreshButton.addEventListener("click", function() {
// 创建 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();
// 设置 HTTP 请求方法和请求地址
xhr.open("GET", "/api/orders");
// 设置 HTTP 请求头部信息
xhr.setRequestHeader("Accept", "application/json");
// 设置 HTTP 请求完成后的回调函数
xhr.onload = function() {
if (xhr.status === 200) {
// 请求成功,解析返回的 JSON 字符串并按最后更新时间倒序排列
var orders = JSON.parse(xhr.responseText);
orders.sort(function(a, b) {
return b.lastUpdateTime.localeCompare(a.lastUpdateTime);
});
// 更新页面上的订单列表
var tbody = orderTable.getElementsByTagName("tbody")[0];
tbody.innerHTML = "";
for (var i = 0; i < orders.length; i++) {
var order = orders[i];
var tr = document.createElement("tr");
tr.innerHTML = "<td>" + order.id + "</td><td>" + order.name + "</td><td>" + order.lastUpdateTime + "</td>";
tbody.appendChild(tr);
}
} else {
// 请求失败,输出错误信息
console.error(xhr.statusText);
}
};
// 设置 HTTP 请求错误时的回调函数
xhr.onerror = function() {
console.error(xhr.statusText);
};
// 发送 HTTP 请求
xhr.send();
});
</script>
</body>
</html>
```
在上述代码中,我们首先获取了刷新按钮和订单表格,然后为刷新按钮添加了点击事件处理函数。在点击事件处理函数中,我们使用`XMLHttpRequest`对象向后端发送了一个 GET 请求,并设置了请求头部信息。当请求完成后,我们解析返回的 JSON 字符串并按最后更新时间倒序排列,最后更新页面上的订单列表。你可以根据自己的具体需求修改代码。
阅读全文