问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-05-02 16:15

我来回答

15个回答

热心网友 时间:2022-04-20 01:43

不刷新页面,重新加载js文件的方法有:

通过js创建script标签,例如

var script = document.createElement("script");
script.src = "test.js";
document.body.appendChild(script);

2.通过ajax实现无刷新加载,ajax的方法可以自己写,也可以引用,以下引用的是jquery的ajax

$.ajax({
    type = "get",
    url : "test.js",
    dataType : "script"
});

总结:如果是自己写js,不引用。建议用第一种,第二种也可以参考。

热心网友 时间:2022-04-20 03:01

我来还原一下场景:

a.animate({},function(){

b.animabe({})

})

假设你的页面大动画由两个小动画组成,大概是上面的样子。
动画改变的是什么?元素的样式。
element和js是分离的,你重新加载了js,也仅仅是覆盖了原来的变量方法而已,html的样式还是那个样子。
所以要复位画面,需要使用js去改变元素样式,这一步你逃不掉的。

取巧的办法是有的。
我设想你的页面为了兼容性等原因,没有使用css3来参与动画,而是使用动画框架比如jQuery的animate,而这些动画框架一般是通过动态改变标签内部的style来形成动画。
这说明,动画前后,变化的是标签内style属性。
比如从:
<div  id="J_move"></div>
变化为
<div  id="J_move" style="width:100px;"></div>

于是可以通过删除标签内的style属性来恢复,遍历一下所有你动画过的节点:
$elem.attr('style',"");
补充:后来我发现ie67中不能通过setAttribute来设置style,至于jQuery.attr没有试。可以先将jQuery对象转化为DOM对象,然后使用style.cssText='';来清空style。
前提是:动画前,这些元素都没有标签内style属性;动画过程中,你没有动态改变动画元素的className,而且动画元素的style也没有被其它程序修改过。

热心网友 时间:2022-04-20 04:36

方法:可以通过js动态创建元素来引入js文件,由createElement来动态创建元素,动态的引入文件;

思路:首先删除原本的script标签,然后动态添加新的script标签来重新引入。

具体代码:

<script id="reloadJs" type="text/javascript" src="aaa.js" ></script>
<script type="text/javascript">
var reloadJs = function(id){
    var jsObj = document.getElementById(id);
    var src = jsObj.src;
    delete jsObj;
    //重新加载
    var script = document.createElement('script');
    script.src = src;
    document.body.appendChild(script);
};
</script>

热心网友 时间:2022-04-20 06:27

在js文件里面通过添加script标签的形式加载js文件
比如在页面里面点击一个按钮(或者触发一个事件什么的)就会执行 : 创建script标签,然后修改src,在吧创建出来的script标签添加到HTML里面
你只要吧你需要加载的js文件的路径写在创建出来的script标签的src里面就行了。。。
这样就可以实现页面不加载 只加载js文件

热心网友 时间:2022-04-20 08:35

第一种
var jsElem = document.createElement('script');
jsElem.src='require.min.js';
document.getElementsByTagName('head')[0].appendChild(jsElem);
第二种
$.ajax({
type: "GET",
url: "test.js",
dataType: "script"
});
第二种完美实现

热心网友 时间:2022-04-20 11:00

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

热心网友 时间:2022-04-20 13:41

所需工具 js

过程 你可以动态的创建<script></script>啊

删掉原来的那个,重新生成个dom节点,html会自动的加载所需的js

热心网友 时间:2022-04-20 16:39

首先, 一般的js文件都是页面读取的时候就加载的.

你如果是通过事件进行触发, 那么就用ajax就可以实现了.

可以使用jqery,发送异步请求,然后获取js文件的地址.

最后,将获取到的js文件地址回填到需要的地方即可.

热心网友 时间:2022-04-20 19:54

你可以使用window.settimeout(setinterval)来定时执行加载

// 5秒后加载js文件
window.settimeout(function(){
    var script = document.createElement("script");    
    script.src = "你的js文件地址";    
    var s = document.getElementsByTagName("script")[0];  
    s.parentNode.insertBefore(script, s);     
},5000)

热心网友 时间:2022-04-20 23:25

jquery提供了一个获取js并运行一次的方法:$.getScript(url [,callback])
url为js所在地址,中括号中的内容为回调函数,可以省略

调用成功后,会运行一次被调用的js文件。
需要注意的是,重复调用js会重复为目标绑定多个相同事件!调试的时候记得留意一下。

热心网友 时间:2022-04-21 03:13

不刷新页面怎么装载js呢,但是我们往往通过ajax局部刷新来更新我们的数据,而不是重新加载js。document.wirte() 虽然可以加载js 但是会不会替换原来的js目前还没测试过,你可以试一下。

热心网友 时间:2022-04-21 07:18

第一种方法:
创建一个<script>元素
var jsElem = document.createElement('script');
jsElem.src='require.min.js';
document.getElementsByTagName('head')[0].appendChild(jsElem);

第二种方法:
最简单也最没节操的方法是:
在最有一个js文件里包含另外的js,例如构造
document.wirte('<script src="a.js" language="JavaScript"></script>');

热心网友 时间:2022-04-21 11:39

没有试过,提供个思路:在页面中用js的document.write输出js文件,点击按钮或者怎样触发后,用js去掉这个script标签,再重新输出一样的js文件。

热心网友 时间:2022-04-21 16:17

你是想要一个js文件多次使用吧,使用定时器调用就行
setTimeout()
或者
setInterval("fun()",1000);后面为几秒调用一次,单位为毫秒

热心网友 时间:2022-04-21 21:12

动态修改script的src或者新加入script标签
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么电脑上的word界面变小为什么WORD里面的页面变的很小怎么设置回来... AHA拯救心脏救命术(Basic Life Support,BLS) 基础生命的基本顺序 机械制图第一视角与第三视角的区别 明日之后野外感染者据点都在什么地方 感染就聚集点位置分享 明日之后 明日之后哪些地图有强力感染者? 《明日之后》野外感染者据点一览 明日之后野外感染者据点去哪找 妙洁提醒你注意:保鲜膜有些不能加热 有些不能包肉 C盘里文件的修改日期是不是就代表那天我用过电脑,我是上午用的,可文件... excel 一直刷新随机数 直到产生需要的数据 哈弗H5(经典版)的导航系统的地图数据会实时更新吗? 用泡沫箱寄冻品泡未箱烂了,里面东西臭了谁负责? 页面刷新后javascrpit全局变量的值还存在吗? 谁知道哈尔滨哪里有卖泡沫箱子的,在买菜卖鱼的地方都问过了,谁知道在哪里可以买到 快递用泡沫箱打包,泡沫箱破损,找谁理赔? 谁要二手泡沫箱 谁知道收破烂的一个泡沫箱多钱 谁收泡沫箱,有一批用过一次的? react native 有没有似类 h5 location.reload 刷新页面的方法 关于Photoshop学习网站 ps的教程哪个网比较好? 怎么学习ps?? 求一个自学ps的免费教程或网站 小米手环5和荣耀手环6哪个好看 ps教程自学网,求推荐 vivo s5i高清通话怎么关闭 一元钱叠千纸鹤方法 vivo x9手机联通卡,打电话有通话时间限制,怎么取消 vivoz5x的通话限制怎么解除? 这种微信昵称小数字怎么设置? 微信昵称后面变小字体。设置完以后出现特殊字符。怎么回事 身边的朋友都换成电信WiFi6了能说下详情吗? 换电信WiFi6咋样? 酷狗音乐换手机登陆最近播放怎么清空了 电脑没有访问权限 网络接电脑没有访问权限怎么弄 酷狗音乐里面“最近播放”歌曲怎么删除哦? 电脑显示“没有权限访问,请与网络管理员联系”,怎么办? 酷狗音乐上的最近播放的歌怎么移到我的最爱列表上? 最新的酷狗音乐操作 、一个为什么会出现2个头像? 两个可以用同一个头像吗? 教育人事管理系统 一个同时出现两个不同的头像请问是怎么设置的就是看到的头像是本人点开的时候看到的就不是本人了我_百度问一问 为什么同一个微信在不同的上头像显示的不一样? 一个怎么会有两个头像和昵称? 一个怎么会同时出现两个不同的头像,请问是怎么设置的? 同一个能在不同的群里用不同的头像吗 现在吃的玉米都是转基因的吗?如何区分转基因与非转基因玉米啊?非转基因玉有多少排粒。