Để truyền biến JS trong AJAX calls, thay thế:
var page = parseInt(getUrlParameter('page'));
Thành (sử dụng unary plus + để convert sang number, fallback default):
var page = +getUrlParameter("page") || 100;
Ví dụ
<html>
<script>
function getUrlParameter(param) {
return param === "page" ? 500 : false;
}
var page = +getUrlParameter("Demo") || 100; // false → 0 → fallback 100
alert(page); // 100
page = +getUrlParameter("page") || 100; // "500" → 500
alert(page); // 500
</script>
<body></body>
</html>
Giải thích kỹ thuật
+value(unary plus) chuyển string sang number nhanh hơnparseInt/Number().+"500"→500,+false→0.|| 100: Nếu kết quả chuyển đổi là0,NaN,null,undefined,"",false(falsy) → dùng default100.- Cảnh báo: Nếu
page = 0là giá trị hợp lệ,||sẽ sai (0 là falsy). Dùng??(nullish coalescing) thay thế:+getUrlParameter("page") ?? 100.
Best Practice AJAX hiện đại
// Fetch API + URLSearchParams (khuyên dùng)
const params = new URLSearchParams(window.location.search);
const page = Number(params.get("page")) || 1; // hoặc params.get("page") ?? "1"
fetch(`/api/posts?page=${page}`)
.then(res => res.json())
.then(data => console.log(data));
// Hoặc với async/await
async function loadPage() {
const page = Number(new URLSearchParams(location.search).get("page")) ?? 1;
const response = await fetch(`/api/posts?page=${page}`);
return response.json();
}