2017-06-16 37 views
-5

我正在创建一个网站,我需要每隔X秒刷新页面以检查API中的新数据。 在页面上我还有一个chatarea,由javascript和NodeJS控制,人们可以在这里聊天。每次刷新页面,聊天都会重置。 如何在页面重新加载后“复制”chatarea div并“粘贴”它?复制div并在页面刷新后粘贴

+1

为什么不使用ajax来检查新数据而不是页面刷新? –

+0

或者用聊天文字设置cookie var – Roy

+0

我必须刷新。 – Grizzlly

回答

-1

您可以保存jQuery的或只是JavaScript中的含量是这样的:

var text = $('.chatcontainer').text(); 

var text = document.getElementByClassName("chatcontainer").textContent; 

然后将其保存到具有以下功能的饼干:

function setCookie(cname, cvalue, exdays) { 
var d = new Date(); 
d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
var expires = "expires="+ d.toUTCString(); 
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 
} 

并致电该功能:

setCookie("chat",text,1); 

及后重装从cookie得到它:

function getCookie(cname) { 
var name = cname + "="; 
var decodedCookie = decodeURIComponent(document.cookie); 
var ca = decodedCookie.split(';'); 
for(var i = 0; i <ca.length; i++) { 
    var c = ca[i]; 
    while (c.charAt(0) == ' ') { 
     c = c.substring(1); 
    } 
    if (c.indexOf(name) == 0) { 
     return c.substring(name.length, c.length); 
    } 
} 
return ""; 
} 

然后:

$('.chatcontainer').text() = getCookie(chat); 

document.getElementByClassName("chatcontainer").textContent = getCookie(chat); 
+1

这将无法正常工作,javascript和jquery vars重置页面刷新。 – Roy

+1

你在开玩笑吧? **页面刷新后,整个脚本被重新加载,所以作为变量和其余的代码!** –

+0

你可以在保存文本后做一些请求或保存它的东西。我没有打算在保存重新加载并设置后... –

-1

功能通过名称获取饼干请重新广告this。我强烈建议使用事件源,而不是重新加载或使用ajax。

0

你真的需要刷新吗? 因为我的解决方案可以与伪刷新工作: 你可以尝试一种形式添加到页面

action="same-old-url" 
method="POST" 

,然后代替提神,提交表单,并插入到POST数据的HTML内容聊天。然后每次在POST数据中读取,如果你有一些html添加到你的聊天。

不是真的刷新,但效果是类似的:页面重新加载,但从技术上说它更像是一个重定向。