2014-02-07 69 views
4

我有這個按鈕的Jquery或Javascript:這是在這種情況下

<input type="image" src="img/btn2.png" onClick="clearbtn()"> 

,並調用此函數一旦圖像被點擊

function clearbtn() { 
    document.getElementById("address").value = "Input Address Here"; 
    document.getElementById("res").value = "Results will be displayed here"; 
    document.getElementById("valid").value = ""; 
    document.getElementById("valid2").value = ""; 
    document.getElementById("cor").value = "Changes will be displayed here"; 
    document.getElementById("code").value = ""; 
    document.getElementById("placeholderImg").style.display = 'none'; 
    document.getElementById("street_number").value = ""; 
    document.getElementById("route").value = ""; 
    document.getElementById("locality").value = ""; 
    document.getElementById("administrative_area_level_1").value = ""; 
    document.getElementById("country").value = ""; 
    document.getElementById("postal_code").value = ""; 

    map.setCenter(defaultLatLng); 
    map.setZoom(0); 
    marker.setMap(null); 
} 

我的問題是這是更快速,更適合更快,更適合這個任務上面或下面的一個?兩者都有效,但我的好奇心在於究竟哪一個能夠爲上述任務提供最佳/最佳性能。

function clearbtn() { 
     $('#address').val("Input Address Here"); 
     $('#res').val("Results will be displayed here"); 
     $('#valid').val(""); 
     $('#valid2').val(""); 
     $('#cor').val("Input Address Here"); 
     $('#code').val("Input Address Here"); 
     document.getElementById("placeholderImg").style.display = 'none'; 
     $('#street_number').val("Input Address Here"); 
    } 
+1

他們似乎都做的非常不同的事情,因爲底部'clearbtn()'不會做'map'或'marker'任何工作。你似乎在比較蘋果和橘子,而不是擔心過早優化。也就是說,你會發現'document.getElementById()。value'比'$(#)。val()'快得多。 – Matt

+0

@Matt我沒有完成在底部的一個,但如果它完成它將做與上述完全相同的事情,但感謝您的注意,我很欣賞你的答案 –

回答

3

Javascript明顯比jQuery快得多。由於每次你在一個元素上使用jQuery時,你都在調用$函數,這需要一些時間(不太明顯)。

在你的簡單情況下,Javascript更適合,但在複雜的情況下,jQuery更加有用,因爲它支持很多功能,最重要的是解決了跨瀏覽器問題。

從以下來源找到更多信息:

  1. jquery vs javascript
  2. jquery vs raw javascript dom forms

如果你想提高jQuery的性能,請仔細閱讀下述來源:

  1. jQuery optimize selectors
  2. efficient jQuery selectors
1

不僅在這種情況下,每件案子優化的JavaScript的工作不是一個優化的jQuery更快。原因是jquery是javascript的封裝。間接jQuery只會執行JavaScript。

0

普通的JavaScript將永遠更快,但在現代瀏覽器中,您將不會注意到普通計算機。我猜最大的收益是不需要加載jQuery本身來運行jQuery版本,但一旦加載,腳本的執行將非常相似

0

document.getElementById is faster .. this si direct JavaScript的。 $('#address')實際上調用了document.getElementById。

但可以說$('#address')更具可讀性。

VAL()僅僅是jQuery的包裝的價值

在性能上的區別就在這裏真的很小......

0

香草JavaScript是更快的目的。但是有些情況下,您可能需要使用jQuery來實現瀏覽器兼容性,而不是頭疼。當你真的真的需要速度嘗試使用普通的js。有關更多詳細信息,請參閱this table

0

jquery適合超過javascript。

function clearbtn() { 
     $('#address').val("Input Address Here"); 
     $('#res').val("Results will be displayed here"); 
     $('#valid').val(""); 
     $('#valid2').val(""); 
     $('#cor').val("Input Address Here"); 
     $('#code').val("Input Address Here"); 
     document.getElementById("placeholderImg").style.display = 'none'; 
     $('#street_number').val("Input Address Here"); 
    } 

您可以更優化像如下

function clearbtn() { 
     $('#res').val("Results will be displayed here"); 
     $('#cor, #address, #code, #street_number').val("Input Address Here"); 
     $('#valid, #valid2').val(""); 
     $('#placeholderImg').hide(); 
     }