5

मैं टर्बोलिंक 2.5.3 का उपयोग कर रहा हूं और मेरे पास होम पेज के नीचे एक स्क्रिप्ट टैग है।टर्बोलिंक्स जावास्क्रिप्ट को कई बार लोड करता है

Turbolinks.pagesCached(0); 

अगर मैं मुख पृष्ठ पर जाएँ, चेतावनी एक बार प्रकट होता है:

<script> 
    $(document).ready(function() { 
    alert('hello'); 
    }); 
</script> 

साइट के प्रत्येक पृष्ठ के लिए, मैं निम्नलिखित जे एस चलाते हैं। यदि मैं बैक बटन दबाता हूं तो मेरे ब्राउज़र पर अग्रेषित बटन होम पेज लोड हो जाएगा, और अब दो अलर्ट दिखाई देंगे। अगर मैं फिर से इस प्रक्रिया को दोहराता हूं, तो तीन अलर्ट दिखाई देंगे।

यहाँ मेरे सवाल है:

क्यों Turbolinks पेज कैश कर रहा है जब मैं स्पष्ट रूप से यह नहीं करने के लिए कहा था। क्या इसे दस्तावेज़ तैयार ईवेंट श्रोता बदलने में टर्बोलिंक्स के साथ क्या करना है? मैं इसे कैसे ठीक करूं ताकि यह हर बार केवल एक बार लोड हो?

+0

तुम क्यों प्रयोग कर रहे हैं 'pagesCached (0) 'चालू हर पृष्ठ? –

उत्तर

1

इस

<script> 
    $(document).ready(function() { 
    if (alert('hello')) { 
    } 
    else { 
    alert('hello'); 
    } 
    }); 
</script> 
+0

यह एक व्यवहार्य समाधान नहीं है क्योंकि 'अलर्ट (' हैलो ') वास्तव में मेरे कोड में उपयोग नहीं किया जाता है। मैंने सादगी के लिए इसे जोड़ा है। – jason328

1

उपयोग की तरह कुछ की कोशिश करो इस के लिए लोड पर बजाय

$(document).on('ready page:load', function() { 

https://github.com/turbolinks/turbolinks-classic#events

+0

क्षमा करें, यह अभी भी फ़ॉर्म को एक से अधिक बार लोड करने का कारण बनता है। – jason328

+0

क्या होगा यदि आप 'तैयार' भाग को हटा दें? –

+0

नहीं, वही परिणाम। अलर्ट दो बार लोड होता है। – jason328

1

उपयोग turbolinks:load

<script> 
    $(document).on('turbolinks:load',function() { 
    alert('hello'); 
    }); 
</script> 
+0

दुर्भाग्य से, इस कोड के साथ अलर्ट बिल्कुल दिखाई नहीं देता है। – jason328

+0

यह टर्बोलिंक 5 के लिए सटीक है, लेकिन 2.5.3 के लिए नहीं –

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