2012-12-13 20 views
11

गति की अवधि में इन बराबर हैं?jQuery चेनिंग प्रदर्शन

$(this).attr("date",date); 
$(this).attr("date_start",date_start); 
$(this).attr("heure_start",heure_start); 

या

$(this).attr("date",date).attr("date_start",date_start).attr("heure_start",heure_start); 

यहां तक ​​कि अगर दूसरा तेजी से होता है यह बेहतर है यह कोड अधिक पठनीय बनाने के लिए अलग लिखने के लिए?

उत्तर

26

नहीं, दो गति में बराबर नहीं हैं।

$(this) प्रत्येक बार एक नई jQuery वस्तु बनाता है। और क्या this है पर निर्भर करता है, यह एक जटिल ऑपरेशन हो सकता है।

तो दूसरा रूप तेजी से होता है।

ध्यान दें कि readibility के लिए आप के रूप में

$(this) 
    .attr("date",date) 
    .attr("date_start",date_start) 
    .attr("heure_start",heure_start); 

लिख सकते हैं आप श्रृंखला संचालन क्योंकि आप के बीच में कोड की अन्य लाइनों है, तो आप भी वस्तु को कैश कर सकते नहीं कर सकते। यह सामान्य है:

$(this).attr({ 
    date: date, 
    date_start: date_start, 
    heure_start: heure_start 
}); 
+0

और यह भी जब सही ढंग से प्रारूपित पढ़ने में आसान IMO –

+3

एक पूर्ण विवरण के Thats! –

5

पठनीयता प्रयोजनों के लिए आप

$(this) 
    .attr("date",date) 
    .attr("date_start",date_start) 
    .attr("heure_start",heure_start); 

करने के लिए लाइन विभाजित कर सकते मैं जानता हूँ कि यह कार्य करना चाहिए:

var $this = $(this); 
$this.attr("date", date); 
$this.attr("date_start", date_start); 
$this.attr("heure_start", heure_start); 

और टिप्पणी भी कि attr तर्क के रूप में एक नक्शा ले जा सकते हैं एक टिप्पणी की गई है लेकिन खाली स्थान एक के रूप में कोई मतलब नहीं जाता।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^