javascript跨域刷新實(shí)現(xiàn)代碼
更新時(shí)間:2011年01月01日 18:43:40 作者:
在XX項(xiàng)目里面需要通過一個(gè)iframe去刷新同一窗口的另外一個(gè)iframe。一個(gè)超級(jí)簡(jiǎn)單的處理,但我還在blog上記一記,有些看似簡(jiǎn)單的東西,在真實(shí)項(xiàng)目應(yīng)用中還是值得思考地方
三個(gè)頁在同一個(gè)窗口,分別為main.htm,left.htm和right.htm。
main.htm
<html>
<head>
<title>實(shí)現(xiàn)跨</title>
</head>
<body>
<div>主窗口</div>
<iframe id="left" name="left" width="500px" height="300px;" src="left.htm" ></iframe>
<iframe id="right" name="right" width="100px" height="100px;" src="right.htm" ></iframe>
</body>
</html>
left.htm
<html>
<head><title>左邊</title></head>
<body>
<div>我是左邊</div>
<div><img src="http://www.enjoymyself.info/images/buysc.jpg" alt=" " /></div>
</body>
</html>
right.htm
<html>
<head><title>右邊</title></head>
<body>
<div>
<input onclick="onclickRefresh();" type="button" value="提交" /></div>
<script type="text/javascript">
function onclickRefresh()
{
parent.frames[ "left"].location.reload();
//window.left.location.reload();
}
</script>
</body>
</html>
看到right.htm里面
function onclickRefresh()通過 parent.frames["left"].location.refresh();來實(shí)現(xiàn)右邊頁面刷新左邊頁面.
如果在主頁面加
<div><input type="button" onclick="mainRefresh();" value="主提交" /></div>
<script type="text/javascript">
function mainRefresh()
{
window.left.location.reload();
}
</script>
則可以通過主頁面刷新子頁面。
雖然這樣可以超級(jí)簡(jiǎn)單的實(shí)現(xiàn)的目的,但是實(shí)際項(xiàng)目中,數(shù)據(jù)不會(huì)是這么簡(jiǎn)單的,最常見是左\右樹,目錄樹的創(chuàng)建加載(如創(chuàng)建一千個(gè)節(jié)點(diǎn))本來就是比較耗資源。如果還是通過方式來刷新左右頁面,效率之低可見而知,那么是不是可以通過其他方式來實(shí)現(xiàn)跨域刷新或者提交呢?
我所想到的是通過ajax實(shí)現(xiàn)數(shù)據(jù)局部加載。而不是整個(gè)樹的加載。另外通過jquery的json處理方式也可實(shí)現(xiàn)局部數(shù)據(jù)的更新。
不知道還有沒有其他更高效的方法?1000個(gè)節(jié)點(diǎn)的樹加載,效率值得思考的問題。
main.htm
復(fù)制代碼 代碼如下:
<html>
<head>
<title>實(shí)現(xiàn)跨</title>
</head>
<body>
<div>主窗口</div>
<iframe id="left" name="left" width="500px" height="300px;" src="left.htm" ></iframe>
<iframe id="right" name="right" width="100px" height="100px;" src="right.htm" ></iframe>
</body>
</html>
left.htm
復(fù)制代碼 代碼如下:
<html>
<head><title>左邊</title></head>
<body>
<div>我是左邊</div>
<div><img src="http://www.enjoymyself.info/images/buysc.jpg" alt=" " /></div>
</body>
</html>
right.htm
復(fù)制代碼 代碼如下:
<html>
<head><title>右邊</title></head>
<body>
<div>
<input onclick="onclickRefresh();" type="button" value="提交" /></div>
<script type="text/javascript">
function onclickRefresh()
{
parent.frames[ "left"].location.reload();
//window.left.location.reload();
}
</script>
</body>
</html>
看到right.htm里面
function onclickRefresh()通過 parent.frames["left"].location.refresh();來實(shí)現(xiàn)右邊頁面刷新左邊頁面.
如果在主頁面加
復(fù)制代碼 代碼如下:
<div><input type="button" onclick="mainRefresh();" value="主提交" /></div>
<script type="text/javascript">
function mainRefresh()
{
window.left.location.reload();
}
</script>
則可以通過主頁面刷新子頁面。
雖然這樣可以超級(jí)簡(jiǎn)單的實(shí)現(xiàn)的目的,但是實(shí)際項(xiàng)目中,數(shù)據(jù)不會(huì)是這么簡(jiǎn)單的,最常見是左\右樹,目錄樹的創(chuàng)建加載(如創(chuàng)建一千個(gè)節(jié)點(diǎn))本來就是比較耗資源。如果還是通過方式來刷新左右頁面,效率之低可見而知,那么是不是可以通過其他方式來實(shí)現(xiàn)跨域刷新或者提交呢?
我所想到的是通過ajax實(shí)現(xiàn)數(shù)據(jù)局部加載。而不是整個(gè)樹的加載。另外通過jquery的json處理方式也可實(shí)現(xiàn)局部數(shù)據(jù)的更新。
不知道還有沒有其他更高效的方法?1000個(gè)節(jié)點(diǎn)的樹加載,效率值得思考的問題。
相關(guān)文章
javascript 構(gòu)造函數(shù)強(qiáng)制調(diào)用經(jīng)驗(yàn)總結(jié)
本文將介紹javascript構(gòu)造函數(shù)調(diào)用方面的案例應(yīng)用,需要了解的朋友可以參考下2012-12-12js String.prototype.trim字符去前后空格的擴(kuò)展
這篇文章主要介紹了js String.prototype.trim字符去前后空格的擴(kuò)展,需要的朋友可以參考下2020-04-04JS使用replace()方法和正則表達(dá)式進(jìn)行字符串的搜索與替換實(shí)例
這篇文章主要介紹了JS使用replace()方法和正則表達(dá)式進(jìn)行字符串的搜索與替換實(shí)例,需要的朋友可以參考下2014-04-04JavaScript設(shè)計(jì)模式之裝飾者模式定義與應(yīng)用示例
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之裝飾者模式定義與應(yīng)用,結(jié)合實(shí)例形式分析了JavaScript裝飾者模式的原理、定義及應(yīng)用方法,需要的朋友可以參考下2018-07-07