LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

你的無(wú)刷新技術(shù)是用的Ajax還是iframe?

admin
2011年1月22日 21:37 本文熱度 3650

























15.38% (2)


23.08% (3)


61.54% (8)
您所在的用戶組沒(méi)有投票權(quán)限





本帖最后由 我為ぁ琴狂 于 2010-8-22 11:44 編輯

現(xiàn)在我碰到一些問(wèn)題很糾結(jié):
1,全都用Ajax,文件上傳可以用flash上傳,但是Ajax提交表單總感覺(jué)挺麻煩的
2,全都用iframe,似乎不能符合W3C文檔標(biāo)準(zhǔn)(不知道怎樣去符合)
3,一般用Ajax,文件上傳用iframe,這個(gè)discuz就是這樣做的

iframe替代ajax方案:
1.html



  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  2. <html xmlns="http://www.w3.org/1999/xhtml">

  3. <head>

  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

  5. <title>無(wú)標(biāo)題文檔</title>

  6. <script type="text/javascript">

  7. function ajax(settings) {

  8.     var div = document.createElement("div"), successed = false, iframeId = "i" + new Date().getTime();

  9.         div.style.display = 'none';

  10.     div.innerHTML = '<iframe id="' + iframeId + '" name="' + iframeId + '"></iframe>';   

  11.         document.body.appendChild(div);

  12.         

  13.         var hiddenIframe = document.getElementById(iframeId);



  14.         if(settings.form) {

  15.             settings.form.action = settings.url;

  16.             settings.form.target = iframeId;

  17.             settings.form.submit();

  18.         } else {

  19.             hiddenIframe.src = settings.url;

  20.         }

  21.         

  22.         var fetchData = function() {

  23.             var doc = document.all ? window.frames[iframeId].document : hiddenIframe.contentDocument;

  24.             settings.callback(doc.body.innerHTML);

  25.                 successed = true;

  26.         }

  27.    

  28.         settings.loader();



  29.     setTimeout(function() {

  30.         if(!successed) {

  31.             alert('Resquest timeout!');

  32.             fetchData = new Function();

  33.         }

  34.     }, settings.timeout);



  35.         if (document.all){

  36.                 hiddenIframe.attachEvent("onload", fetchData);

  37.         } else {

  38.                 hiddenIframe.onload = fetchData;

  39.         }

  40. }



  41. function A() {

  42.         ajax({

  43.             form: document.getElementById('f'),

  44.                 url: '1.php',

  45.                 loader: function() {},

  46.                 timeout: 3000,

  47.                 callback: function(data) {

  48.                         alert(data);

  49.                 }

  50.         })

  51.         return false;

  52. }

  53. function B() {

  54.         ajax({

  55.                 url: '1.php',

  56.                 loader: function() {},

  57.                 timeout: 3000,

  58.                 callback: function(data) {

  59.                         alert(data);

  60.                 }

  61.         })

  62.         return false;

  63. }

  64. </script>

  65. </head>

  66. <body>

  67. <form id="f" method="post" onsubmit="return A()">

  68. <input type="text" name="word" value="123" />

  69. <input type="submit"/>

  70. </form>

  71. <button onclick="B()">get_send</button>

  72. </body>

  73. </html>
復(fù)制代碼
1.php



  1. <?php

  2. echo json_encode(array($_POST))

  3. ?>
復(fù)制代碼

該文章在 2011/1/22 21:37:11 編輯過(guò)

全部評(píng)論3

admin
2011年1月22日 21:37
搜到的一些高手的見(jiàn)解 到現(xiàn)在ajax碰到的兩個(gè)比較大的問(wèn)題是 1)中文亂碼,這個(gè)貌似是編碼的問(wèn)題,基本上能夠解決,但是在某些比較低版本的瀏覽器中還是會(huì)出現(xiàn)一些問(wèn)題 2)跨域post提交數(shù)據(jù),這個(gè)貌似沒(méi)有辦法直接實(shí)現(xiàn),只能通過(guò)代理或其他方式來(lái)實(shí)現(xiàn) 而這兩個(gè)問(wèn)題iframe基本都不會(huì)碰到,但是iframe的問(wèn)題在于 1)你想同時(shí)進(jìn)行多少個(gè)請(qǐng)求,就必須建立多少個(gè)iframe~否則無(wú)法同時(shí)進(jìn)行 2)iframe的方式處理的是iframe頁(yè)面的內(nèi)容,交互成功的觸發(fā)方式主要靠a)頁(yè)面定時(shí)讀取頁(yè)面加載狀態(tài);b)iframe觸發(fā)父頁(yè)面的事件。a)方式必然導(dǎo)致對(duì)客戶端資源的較多占用,b)方式導(dǎo)致返回?cái)?shù)據(jù)的增加,而且必須保證父頁(yè)和框架頁(yè)的變量和方法的統(tǒng)一。而這點(diǎn)上面,ajax交互過(guò)程中僅僅返回所需要的數(shù)據(jù)(xml或者text),這個(gè)是ajax相比iframe的最大優(yōu)勢(shì)之一。 當(dāng)然,有些簡(jiǎn)單的交互過(guò)程,或許用iframe解決會(huì)簡(jiǎn)單一些,例如我的站點(diǎn)有多個(gè)頻道,采用二級(jí)域名布局,這時(shí)候如果在a域名下要將數(shù)據(jù)post到b域名下,如果用ajax處理起來(lái)可能會(huì)很麻煩,但是iframe很簡(jiǎn)單就能實(shí)現(xiàn)了 至于實(shí)際應(yīng)用中,用iframe還是ajax,看實(shí)際需求和個(gè)人喜好吧~~ 在有的地方比如點(diǎn)擊出現(xiàn)一個(gè)浮動(dòng)操作窗口,用iframe比用ajax方便的多。個(gè)人感覺(jué)用戶體驗(yàn)比ajax還要好,ajax總有頓一下的感覺(jué),iframe的方式響應(yīng)非常快。但是一點(diǎn)擊瀏覽器的后退按鈕就露馬腳了,用iframe會(huì)把每次操作當(dāng)作一次點(diǎn)擊鏈接記錄到歷史記錄中。ajax還能做很多其它iframe做不了的事

該評(píng)論在 2011/1/22 21:37:46 編輯過(guò)
admin
2011年1月22日 21:39
哥用ajax用的很少,幾乎不怎么用,適當(dāng)用用還是有益的,用多了就有些過(guò)度依賴了

該評(píng)論在 2011/1/22 21:39:04 編輯過(guò)
admin
2011年1月22日 21:39
什么方便就用什么

該評(píng)論在 2011/1/22 21:39:21 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲一区精品自拍偷拍 | 在线观看片免费观看不卡 | 亚洲精品第一国产综合精品 | 亚洲综合网站精品一区二区 | 亚洲精品欧美视频在线观看 | 亚洲精品亚洲字幕 |