$.ajax({
url: 'Ajax/OrderBy.aspx',
data: {AppIds: sortedAppids},
dataType: 'xml',
type: 'POST',
success: function(xml)
{
alert("排序成功!");
}
});
ajax在同步交互時(shí),第一次提交正常,再第二次提交如果和上次提交的url地址相同時(shí)將不進(jìn)行提交,會(huì)用上次的返回值。這樣處理也許是ext別有良苦用心,但是,如果遇到每次必須提交時(shí),例如一次提交后臺(tái)的數(shù)據(jù)已經(jīng)被修改了,再次提交返回的結(jié)果其實(shí)是不一樣的,這樣就需要特殊處理了。
方法一:GET方式加參數(shù)
原代碼:
view plaincopy to clipboardprint?
var conn = Ext.lib.Ajax.getConnectionObject().conn;
conn.open("get", HOST+'/OrgUserAction_checkPassword.action?id='+id+'&passwordOld='+checkValue,false);
conn.send(null);
// alert(conn.responseText);
處理后
view plaincopy to clipboardprint?
var conn = Ext.lib.Ajax.getConnectionObject().conn;
conn.open("get", HOST+'/OrgUserAction_checkPassword.action?id='+id+'&passwordOld='+checkValue+'&temp='+new Date(),false);
conn.send(null);
// alert(conn.responseText);
添加了一個(gè)臨時(shí)參數(shù)temp=new Date();
這樣保證了每次提交的url是不同的,從而達(dá)到了每次都會(huì)提交的效果。
方法二:
把get 改成post就可以了type: 'POST',
一大早發(fā)現(xiàn),ie6下點(diǎn)發(fā)起對(duì)話沒(méi)法彈出窗口,ff瀏覽器就是可以的。開啟HttpWatch檢測(cè),發(fā)現(xiàn)點(diǎn)擊的被aborted。
查找資料顯示aborted的原因如下。
The (Aborted) value is more complex in its origin. It occurs when IE has started to process the request for a URL (e.g. to download an image), but then decides to cancel the operation. Here are some examples of when this can occur:
If you click on a link or bookmark while a page is downloading, or click on IE’s Stop button, you will see that IE cancels any requests which are still active and HttpWatch shows the (Aborted) result.
A CSS rollover image on a page will start a request when the mouse pointer is moved into its active area. If the mouse pointer quickly moves away again, IE may abort the request if it has not already completed.
Sometimes javascript is used to fire off requests for background tasks or to gather statistics on a page. Often this can lead to aborted results if the javascript does not wait for the response to be received from the server.
繼續(xù)尋找根源,搜索到發(fā)現(xiàn)這個(gè)問(wèn)題是ie6中一個(gè)底層 機(jī)制的bug,之后的版本已經(jīng)解決了。據(jù)說(shuō)<a href="javascript:void(0)">或者<a href=#">這樣使用a標(biāo)簽的話并不能阻止a標(biāo)簽最后觸發(fā)一個(gè)什么行為,導(dǎo)致ie6會(huì)錯(cuò)誤的認(rèn)為頁(yè)面刷新或者重定向了,并且中斷了當(dāng)前所有連 接,這樣新的加載就被aborted了。解決方案最簡(jiǎn)單的方法有兩個(gè),一個(gè)是這樣使用a標(biāo)簽<a href="xxx(); return false;">,另外一個(gè)就是用div替換a標(biāo)簽來(lái)用。至此,問(wèn)題總算解決。
在開發(fā)中常使用<a>標(biāo)簽代替button,好處在于可以利用a:hover樣式做mouseover效果,但下面的代碼在IE6下就有問(wèn)題,onclick中的請(qǐng)求被aborted。
<a href="javascript:void(0);" onclick="$('current').src='images/001.jpg';">切換圖片</a>,IE6下圖片不顯示。
<a href="javascript:void(0);" onclick="MyJrjRelation.checkAttention();">關(guān)注此人</a>,IE6下請(qǐng)求失敗。
解決方法:
1. 不使用onclick,但必須保證處理函數(shù)不返回值,否則瀏覽器將清空頁(yè)面,只顯示函數(shù)的結(jié)果。如果checkAttention返回false,瀏覽器中就會(huì)顯示false。
<a href="javascript:MyJrjRelation.checkAttention();">關(guān)注此人</a>
<a href="javascript:void(MyJrjRelation.checkAttention());">關(guān)注此人</a> void返回undefined;
2. 在onclick上加return false阻止瀏覽器執(zhí)行href。href屬性還是必須的,否則鏈接就樣式失效了。
<a href="javascript:void(0);" onclick="MyJrjRelation.checkAttention();return false;">關(guān)注此人</a>
總結(jié)來(lái)說(shuō)<a href="javascript:void(0);" onclick="MyJrjRelation.checkAttention();return false;">的兼容性最好。
原文地址:
http://blog.csdn.net/wangjj_016/article/details/5304784
鉤子函數(shù)是Windows系統(tǒng)自帶的函數(shù),是非常重要的系統(tǒng)接口函數(shù),利用鉤子函數(shù),它可以捕捉當(dāng)前進(jìn)程或其他進(jìn)程發(fā)生的消息。通過(guò)“鉤掛”,你可以給WINDOWS一個(gè)處理或過(guò)濾事件的回調(diào)函數(shù),該函數(shù)也叫做“鉤子函數(shù)”,當(dāng)每次發(fā)生你感興趣的事件時(shí),WINDOWS都將調(diào)用該函數(shù)。簡(jiǎn)單的說(shuō)鉤子函數(shù)就是Windows系統(tǒng)自帶的“監(jiān)工”“監(jiān)視者”,它們負(fù)責(zé)監(jiān)視系統(tǒng)內(nèi)各個(gè)進(jìn)程的運(yùn)行狀況,并從中獲得數(shù)據(jù),比如獲得鼠標(biāo)激活、鍵盤響應(yīng)等信息,系統(tǒng)正是根據(jù)鉤子函數(shù)對(duì)該信息作出的處理。典型的一個(gè)應(yīng)用就是金山詞霸的屏幕抓詞,他就是利用了
鉤子函數(shù)捕捉鼠標(biāo)事件從而及時(shí)的對(duì)鼠標(biāo)所指向的詞匯進(jìn)行翻譯。
當(dāng)然鉤子函數(shù)具有如此厲害的功能,肯定也受黑客和木馬編寫者的青睞。試想一下:當(dāng)木馬利用鉤子函數(shù)監(jiān)控并收集你在鍵盤上敲擊的每一個(gè)按鍵并發(fā)送給黑客這是怎么樣的后果?你還敢在電腦上輸銀行賬戶和密碼?輸入QQ或網(wǎng)游帳號(hào)?當(dāng)然不敢因?yàn)槟阍陔娔X上的一舉一動(dòng)都在被木馬程序所監(jiān)控所記錄,你的隱私也不會(huì)得到保障。鉤子函數(shù)也是諸如《鍵盤記錄器》這樣軟件的主要組成部分。