2014-02-07 63 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(); 
     }