3
當檢查一個特定的瀏覽器是否支持AJAX,目標檢測就是我平時做:的Javascript XMLHttpRequest對象檢測VS在try..catch
if (window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
然而,每當我一起來看看由誰是開發人員編寫的代碼更高級,更有可能,我會看到一個try-catch塊來代替:
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP"); //IE
}
catch(e) // if not IE
{
xhr = new XMLHttpRequest();
}
我知道有些人說在try..catch比較慢,但是如果這是一個很值得只是喜好的問題,有沒有一個公約/更「標準」的方式來做到這一點?在很長一段時間,當我在innerHTML(非標準)和DOM(標準)之間做出決定時,我也處於相同的情況。感謝您的時間。任何建議,將不勝感激。
沒錯,但「優雅」並不意味着「標準」,因爲innerHTML的操作同樣的事情比DOM遍歷「更快」,但不被認爲是「標準」的方式:) –
這更是一個標準的。這與jQuery的做法很相似。而且它是最安全的。 '功能createStandardXHR(){ \t嘗試{ \t \t回報新window.XMLHttpRequest(); \t}趕上(E){}} 功能createActiveXHR(){ \t嘗試{ \t \t回報新window.ActiveXObject( 「Microsoft.XMLHTTP」); \t}趕上(E){}} XHR = window.ActiveXObject? \t函數(){ \t \t返回createStandardXHR()|| createActiveXHR(); \t}: \t createStandardXHR;' –