如何实现不刷新页面,只重新加载js文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现不刷新页面,只重新加载js文件相关的知识,希望对你有一定的参考价值。

使用AJAX技术实现不刷新页面 AJAX 是一种用于创建快速动态网页的技术。 通过与服务器进行量数据交换,在不重新加载整个网页的情况下,对网页的某部分进行更新。 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。 参考技术A // 获得要刷新的script
var script = document.getElementById('jQuery');

// 刷新JS的方法
function refreshJS(script) 
    var newScript = document.createElement('script');
    
    // 直接加载原地址不会刷新,因为浏览器会缓存, 所以尾部加上时间戳,导致浏览器会认为这是个新地址
    newScript.src = script.src + '?' + new Date().getTime();
    document.body.removeChild(script);
    document.body.appendChild(newScript);


// 调用
refreshJS(script);

本回答被提问者采纳
参考技术B 可以将script 删除,然后通过document.createElement 来重新创建引入。这样就相当于刷新了一遍。

Ajax加载页面如何刷新地址栏URL的问题

参考技术A 近期,有一位網友問我關于跨頁播放音樂的問題。
在網上搜索過,有使用iframe實現的,有使用ajax方法實現的。
這兩種方法雖然可以很好的實現不刷新音樂播放器,而使用iframe/ajax做到刷新頁面的效果。這樣音樂,即使在你更新網頁的時候也不會停止了。
但即使音樂能夠貫穿整站,但是Url在地址欄并不會改變。
那么我的介意是參照facebook的做好,使用頁內鏈接改變地址欄Url。
只需要一句代碼:
location.replace("#abc.aspx");
你可以將#后面的Url替換成你使用ajax/iframe請求的地址的Url.說到底,這只是使用一個錨改變了Url地址。
我不推薦做如上的功能,因為所有的頁面共用一個Url不利于搜索引擎收錄。就這一點,足夠讓你放棄跨頁播放音樂的功能。
更好的方式是HTML5 中新增了 history.pushState 方法,用以向浏览器添加历史记录,但是不触发页面载入。這個有待下回分解。本回答被提问者采纳

以上是关于如何实现不刷新页面,只重新加载js文件的主要内容,如果未能解决你的问题,请参考以下文章

如何让html页面实现每次刷新的时候重新执行js

如何重新刷新iframe层不刷新父页面

如何让js在页面加载后只执行一次,也就是再次刷新当前页,不再执行js

Ajax加载页面如何刷新地址栏URL的问题

Vue页面重新加载刷新数据配置

每次进入iframe都重新加载