1
msg7086 2013-06-01 04:33:02 +08:00
hide+fadein哪里刷新了……
要reset一个div,需要把div的原始状态保存下来。document.ready的时候把div.html()存下来,reset的时候写回去。 |
2
meteor2013 OP @msg7086 你的意思是:
var divClone = $("#div1").clone(); 然后 $("#div1_div").replaceWith(divClone); 这样的话。因为div1包含的div太多了,资源会不会。。。。。? |
3
bitsmix 2013-06-01 04:53:16 +08:00
html()
|
4
msg7086 2013-06-01 04:56:54 +08:00
html()
|
5
raincious 2013-06-01 06:57:44 +08:00
我能瞎指挥么?
我的想法类似这样: 改之前先 div.shadow = doc.getElementByXX(XXX); // Backup 回写: if (div.shadow) { for(var p in div.shadow) { oldElement[p] = div.shadow[p]; } } |
6
hongyz 2013-06-01 07:43:00 +08:00 via iPhone
html()
要么从服务器请求div1片段 |
7
crazybubble 2013-06-01 07:49:47 +08:00
可以试试把div1里的div的那些初始状态记录下来,比如存在一个object里,然后点击刷新回到最初状态的时候,就把这些div的属性设置回初始状态。
|
8
breeswish 2013-06-01 08:38:26 +08:00 via Android
要么用clone() 要么只保存HTML(如果没有listener的话)
其实这样的内存占用也不会多多少吧 :) 因为你的clone是在最初状态下clone的 |
9
meteor2013 OP |
10
likexian 2013-06-01 09:16:42 +08:00
backbone,你需要它
|
11
breeswish 2013-06-01 09:21:04 +08:00 via Android
@meteor2013 那就……要么clone要么从服务器拉取HTNL重新绑定
|
12
dimfox 2013-06-01 11:17:39 +08:00
|
13
Jessepinkman 2013-06-01 12:37:42 +08:00
<html xmlns="http://www.w3.org/1999/xhtml">
<head> <title></title> <script type="text/javascript"> function showTime(){ var tDate = new Date(); var tseconds = tDate.getSeconds(); if (tseconds < 10) tseconds = '0' + tseconds; var timeStr = '当前时间是' + tDate.getHours() + ':' + tDate.getMinutes() + ':' + tseconds; document.getElementById('time').innerHTML = timeStr; setTimeout(showTime, 1000); } </script> </head> <body onload="showTime()"> <div id="content"> <div id="time">刷新</div> </div> </body> </html> |
14
ipconfiger 2013-06-01 12:43:06 +08:00
一开始的时候
var origin_str = $("#div1").html(); 这样存的只是html的字符串,不是dom对象。能有多大开销呢,即使是一个1M的字符串。相对你的内存来也是小case 恢复的时候 $("#div1").html(origin_str); 就搞定了,重建dom结构和重新渲染这个区域差不多,从服务端获取也不过如此 |