求大神【当a页面载入a.js就触发让b页面的b.js重新载入】怎么写?

肖施主 2017-07-24 08:59:17
一个很懵逼的问题:
a页面是个缓存页,它会每隔一段时间就自动生成一次,现在给它加个a.js,
让每一次载入a.js都让在b页面里的b.js重新载入一次,
简单来说,就是a页面更新了,处于打开状态的b页面会通知说:a页面那货更新了!
a.js要怎么写?b.js要怎么写?大神出招吧
要用a通知b的方式,不能用不停刷新的轮询方式哦
...全文
240 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2017-07-25
  • 打赏
  • 举报
回复
引用 8 楼 a570295535 的回复:
[quote=引用 7 楼 jslang 的回复:] a.js会在a页面每次重新生成的时候重新载入一次是怎么意思? a.js在哪里重新载入? a页面是在服务器端重新生成的。你怎么通知客户端啊?
这不正因为不知道,才来问大神来了啊[/quote] 你的这种方案的思路本身就不能实现,还是去看看 ajax长轮询 技术吧,那才是你需要的。
肖施主 2017-07-24
  • 打赏
  • 举报
回复
引用 7 楼 jslang 的回复:
a.js会在a页面每次重新生成的时候重新载入一次是怎么意思? a.js在哪里重新载入? a页面是在服务器端重新生成的。你怎么通知客户端啊?
这不正因为不知道,才来问大神来了啊
天际的海浪 2017-07-24
  • 打赏
  • 举报
回复
a.js会在a页面每次重新生成的时候重新载入一次是怎么意思? a.js在哪里重新载入? a页面是在服务器端重新生成的。你怎么通知客户端啊?
肖施主 2017-07-24
  • 打赏
  • 举报
回复
引用 5 楼 jslang 的回复:
[quote=引用 4 楼 a570295535 的回复:] [quote=引用 3 楼 jslang 的回复:] 你这是由b页面载入a.html的内容在b页面中更新啊,怎么还需要让每一次载入a.js都让在b页面里的b.js重新载入一次?
现在这种是单纯的有没有消息都疯狂刷新,我想改成这种: 当a有新消息a来通知b,b再刷新加载一次,而不是有没有消息都刷新。。。[/quote] 用 ajax长轮询 技术 http://www.cnblogs.com/chunguang/p/5538391.html[/quote] 非也非也啊,我的a页面是个缓存页,现在a.js会在a页面每次重新生成的时候重新载入一次,这样就有了自主通知的能力了, 本来是是要让a通知b,结果用轮询,不就又反过来让b追着a跑了吗
天际的海浪 2017-07-24
  • 打赏
  • 举报
回复
引用 4 楼 a570295535 的回复:
[quote=引用 3 楼 jslang 的回复:] 你这是由b页面载入a.html的内容在b页面中更新啊,怎么还需要让每一次载入a.js都让在b页面里的b.js重新载入一次?
现在这种是单纯的有没有消息都疯狂刷新,我想改成这种: 当a有新消息a来通知b,b再刷新加载一次,而不是有没有消息都刷新。。。[/quote] 用 ajax长轮询 技术 http://www.cnblogs.com/chunguang/p/5538391.html
肖施主 2017-07-24
  • 打赏
  • 举报
回复
引用 3 楼 jslang 的回复:
你这是由b页面载入a.html的内容在b页面中更新啊,怎么还需要让每一次载入a.js都让在b页面里的b.js重新载入一次?
现在这种是单纯的有没有消息都疯狂刷新,我想改成这种: 当a有新消息a来通知b,b再刷新加载一次,而不是有没有消息都刷新。。。
天际的海浪 2017-07-24
  • 打赏
  • 举报
回复
你这是由b页面载入a.html的内容在b页面中更新啊,怎么还需要让每一次载入a.js都让在b页面里的b.js重新载入一次?
肖施主 2017-07-24
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
你这个问题只有当a页面是由b页面用 window.open()打开的情况下才能做到。 是这种情况就可以在a.js中 opener.document.getElementById("b页面中script元素id").src = "b.js?"+(new Date()).getTime();
我的b页面是用ajax调用的a页面,无限刷新用的太坑了, b.js是这样:
setInterval(function(){
		$.ajax({
			url:"/a.html",
			type: 'GET',
			success: function(data){
				$(".memory_messagelist").html(data);
e=document.getElementById("memory_messagelist"),e.scrollTop=e.scrollHeight;//刷新列表滑动条自行拖动到最底部
			},
			async:false
		});
	}, 3000);
我这个不是用的window.open(),所以怎么写啊大神?
天际的海浪 2017-07-24
  • 打赏
  • 举报
回复
你这个问题只有当a页面是由b页面用 window.open()打开的情况下才能做到。 是这种情况就可以在a.js中 opener.document.getElementById("b页面中script元素id").src = "b.js?"+(new Date()).getTime();

87,918

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧