狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv
400 186 1886
OA教程
經驗分享
安裝指引
工作流
ERP教程
經驗分享
銷售管理
采購管理
生產管理
倉庫管理
工程管理
品質管理
財務管理
模切知識交流
經驗分享
技術文檔
PMS教程
CRM教程
開發文檔
其他文檔
MIS教程
MAS教程
EBR教程
企業管理
微信好文
讀書沙龍
無題
網站管理員
你的無刷新技術是用的Ajax還是iframe?
當前位置:
點晴教程
→
知識管理交流
→
『 技術文檔交流 』
admin
2011年1月22日 21:37
本文熱度 3131
1. 一直用iframe代替Ajax
15.38%
(2)
2. 一般用Ajax,文件上傳用iframe
23.08%
(3)
3. 一直用Ajax,文件上傳可以用flash上傳
61.54%
(8)
您所在的用戶組沒有投票權限
本帖最后由 我為ぁ琴狂 于 2010-8-22 11:44 編輯
現在我碰到一些問題很糾結:
1,全都用Ajax,文件上傳可以用flash上傳,但是Ajax提交表單總感覺挺麻煩的
2,全都用iframe,似乎不能符合W3C文檔標準(不知道怎樣去符合)
3,一般用Ajax,文件上傳用iframe,這個discuz就是這樣做的
iframe替代ajax方案:
1.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文檔</title>
<script type="text/javascript">
function ajax(settings) {
var div = document.createElement("div"), successed = false, iframeId = "i" + new Date().getTime();
div.style.display = 'none';
div.innerHTML = '<iframe id="' + iframeId + '" name="' + iframeId + '"></iframe>';
document.body.appendChild(div);
var hiddenIframe = document.getElementById(iframeId);
if(settings.form) {
settings.form.action = settings.url;
settings.form.target = iframeId;
settings.form.submit();
} else {
hiddenIframe.src = settings.url;
}
var fetchData = function() {
var doc = document.all ? window.frames[iframeId].document : hiddenIframe.contentDocument;
settings.callback(doc.body.innerHTML);
successed = true;
}
settings.loader();
setTimeout(function() {
if(!successed) {
alert('Resquest timeout!');
fetchData = new Function();
}
}, settings.timeout);
if (document.all){
hiddenIframe.attachEvent("onload", fetchData);
} else {
hiddenIframe.onload = fetchData;
}
}
function A() {
ajax({
form: document.getElementById('f'),
url: '1.php',
loader: function() {},
timeout: 3000,
callback: function(data) {
alert(data);
}
})
return false;
}
function B() {
ajax({
url: '1.php',
loader: function() {},
timeout: 3000,
callback: function(data) {
alert(data);
}
})
return false;
}
</script>
</head>
<body>
<form id="f" method="post" onsubmit="return A()">
<input type="text" name="word" value="123" />
<input type="submit"/>
</form>
<button onclick="B()">get_send</button>
</body>
</html>
復制代碼
1.php
<?php
echo json_encode(array($_POST))
?>
復制代碼
該文章在 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 編輯過
關鍵字查詢
技術
相關文章
正在查詢...
Copyright 2010-2025
ClickSun
All Rights Reserved