原生js清理浏览器缓存
时间: 2024-05-15 09:16:08 浏览: 20
清理浏览器缓存可以使用以下代码:
```javascript
// 清除所有缓存
window.location.reload(true);
// 清除指定URL缓存
window.location.href = "your-url-here";
```
其中,`window.location.reload(true)`会强制刷新页面,从而清除所有缓存。而`window.location.href`则会跳转到指定URL,从而清除该URL的缓存。
相关问题
原生js清除浏览器缓存
在原生JavaScript中,可以通过以下几种方式清除浏览器缓存:
1. 使用location.reload()方法,强制浏览器重新加载页面,从而清除缓存。该方法可以接受一个布尔值参数,表示是否强制从服务器重新加载页面。如果省略参数或传递false,则浏览器可能会从缓存中加载页面。
```
location.reload(true);
```
2. 在URL后添加随机数参数,使浏览器强制重新加载页面。可以使用Date对象的getTime()方法获取当前时间的时间戳,并将其作为随机数参数添加到URL中。
```
var random = new Date().getTime();
window.location.href = "http://example.com/?random=" + random;
```
3. 清除浏览器缓存。可以通过JavaScript修改HTTP头信息,添加Cache-Control或Expires字段,从而告诉浏览器不要缓存页面。例如,以下代码将页面的Cache-Control设置为no-cache,从而禁用浏览器缓存。
```
window.addEventListener("pageshow", function(event) {
if (event.persisted) {
// 页面从缓存中加载
window.location.reload();
} else {
// 页面第一次加载
}
}, false);
// 禁用浏览器缓存
document.header("Cache-Control", "no-cache");
document.header("Expires", "-1");
```
原生ajax兼容各种浏览器写法
原生的 AJAX 在不同的浏览器下会有不同的写法。以下是一种常见的兼容各种浏览器的写法:
```
function createXHR() {
if (typeof XMLHttpRequest != "undefined") {
return new XMLHttpRequest();
} else if (typeof ActiveXObject != "undefined") {
if (typeof arguments.callee.activeXString != "string") {
var versions = [
"MSXML2.XMLHttp.6.0",
"MSXML2.XMLHttp.3.0",
"MSXML2.XMLHttp"
];
for (var i = 0, len = versions.length; i < len; i++) {
try {
new ActiveXObject(versions[i]);
arguments.callee.activeXString = versions[i];
break;
} catch (ex) {
// 跳过
}
}
}
return new ActiveXObject(arguments.callee.activeXString);
} else {
throw new Error("No XHR object available.");
}
}
function ajax(options) {
var xhr = createXHR();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {
options.success(xhr.responseText);
} else {
options.error(xhr.status);
}
}
};
var url = options.url;
var method = options.method || "GET";
var async = options.async || true;
var data = options.data || null;
xhr.open(method, url, async);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(data);
}
```
这段代码中,`createXHR()` 函数用于创建 XMLHttpRequest 对象,如果浏览器支持 XMLHttpRequest,则创建 XMLHttpRequest 对象并返回;否则,尝试使用 ActiveXObject 创建 XMLHttpRequest 对象。在 `ajax()` 函数中,首先调用 `createXHR()` 函数创建 XMLHttpRequest 对象,然后设置 `xhr.onreadystatechange` 函数,当 readyState 变为 4 时,判断状态码是否在 200 到 299 之间或者是否为 304,如果是则调用 `options.success()` 函数,否则调用 `options.error()` 函数。接着设置请求的 URL、请求方法、是否异步、请求数据类型等信息,最后发送请求。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)