狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

你的無刷新技術是用的Ajax還是iframe?

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

























15.38% (2)


23.08% (3)


61.54% (8)
您所在的用戶組沒有投票權限





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

現在我碰到一些問題很糾結:
1,全都用Ajax,文件上傳可以用flash上傳,但是Ajax提交表單總感覺挺麻煩的
2,全都用iframe,似乎不能符合W3C文檔標準(不知道怎樣去符合)
3,一般用Ajax,文件上傳用iframe,這個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>無標題文檔</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>
復制代碼
1.php



  1. <?php

  2. echo json_encode(array($_POST))

  3. ?>
復制代碼

該文章在 2011/1/22 21:37:11 編輯過

全部評論3

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

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

該評論在 2011/1/22 21:39:04 編輯過
admin
2011年1月22日 21:39
什么方便就用什么

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