स्रोत देखने पर Chrome को ताज़ा पृष्ठ से कैसे रोका जाए?


20

Google Chrome में पृष्ठ स्रोत देखने के दौरान, ब्राउज़र एक नया टैब खोलता है और मूल रूप से URL को view-source:उपसर्ग के साथ पेस्ट करता है । यह अवांछनीय है।

एक डेवलपर के रूप में, मैं कुछ नैदानिक ​​आउटपुट शामिल कर सकता हूं जो केवल फॉर्म जमा करने के बाद स्रोत में दिखाई देता है। जब Chrome स्रोत को देखने के लिए पृष्ठ को ताज़ा करता है, तो यह इस जानकारी को गायब कर देता है।

इस व्यवहार को रोकने के लिए वैसे भी क्या है?

नोट: मैं "निरीक्षण तत्व" विकल्प से परिचित हूं। यह आपके द्वारा देखे जा रहे सटीक पृष्ठ के कच्चे पृष्ठ स्रोत को देखने के लिए केवल एक पर्याप्त स्टैंड-इन नहीं है।


एक त्वरित परीक्षण स्क्रिप्ट

<pre>
  <?= print_r($_POST, true) ?>
</pre>
<form action="" method="post">
  <input id="foo" name="foo" value="bar" />
  <input type="submit" />
</form>

सबमिट बटन पर क्लिक करने के बाद, पेज दिखाता है

Array
(
    [foo] => bar
)

यदि आप पृष्ठ स्रोत देखते हैं, तो आपको एक खाली $_POST आउटपुट दिखाई देगा

<pre>
Array
(
)
</pre>
<form action="" method="post"> 
  <input id="foo" name="foo" value="bar" /> 
  <input type="submit" /> 
</form> 

अपडेट करें

जाहिरा तौर पर यह बग पहले ही सबमिट किया जा चुका है। आह ...

अगर किसी को किसी अच्छे काम के बारे में पता है, तो मैं उसकी बहुत सराहना करूंगा।


वहां के लोग यह नहीं समझते हैं कि स्रोत को स्मृति में नहीं रखा गया है (अतिसूक्ष्मवाद के कारण) लेकिन हेरफेर किया गया। आप टिप्पणी देखना चाहिए code.google.com/p/chromium/issues/detail?id=523#c47 के रूप में वह भी एक अच्छा विचार लगता है ...
तमारा Wijsman

जवाबों:


12

बग रिपोर्ट पृष्ठ से, टिप्पणी 12 कार्यों में उल्लिखित वर्कअराउंड : डेवलपर टूल में, संसाधन ट्रैकिंग सक्षम करें। (यदि यह बंद था, तो इसे सक्षम करने से उस अनुरोध को फिर से सबमिट किया जाएगा जो वर्तमान में दिखाई देने वाला पृष्ठ, POST या GET है।) संसाधन की सूची में, आप स्रोत कोड को देखने के लिए मुख्य पृष्ठ पर क्लिक कर सकते हैं क्योंकि यह गंभीर रूप से वापस आ गया था। POST और GET दोनों अनुरोधों के लिए।

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

अधिक जानकारी

मैंने एक साधारण php फ़ाइल का उपयोग करके कुछ परीक्षण चलाए, जिसमें उपयोग की गई अनुरोध विधि और एक POSTed मान दिखाया गया था, यह देखने के लिए एक प्रॉक्सी सर्वर लॉग था chrome://net-internals/view-cache/कि Chrome क्या अनुरोध कर रहा था, और उपसर्ग यह देखने के लिए कि Chrome क्या कैशिंग था।

जब आप दृश्य स्रोत आदेश का उपयोग करते हैं, तो क्रोम पृष्ठ के कैश्ड संस्करण का स्रोत दिखाता है , और यह केवल जीईटी पद्धति के माध्यम से अनुरोधित पृष्ठों को कैश करता है।

यदि आप एक ऐसे पृष्ठ को देख रहे हैं जिसे आपने पहले GET और POST का उपयोग करने का अनुरोध किया है, तो केवल GET संस्करण को कैश किया गया है। दृश्य स्रोत आदेश का उपयोग करने से पृष्ठ का पुनः अनुरोध नहीं होगा, लेकिन कैश्ड GET संस्करण दिखाएगा, यदि वर्तमान में दृश्यमान POST संस्करण नहीं है, यदि कोई हो।

यदि आप एक ऐसे पृष्ठ को देख रहे हैं जिसे आपने केवल POST विधि का उपयोग करने का अनुरोध किया है, तो View Source कमांड का उपयोग करने से Chrome को उसके कैश में दिखाई देगा, कुछ भी नहीं मिलेगा, GET का उपयोग करके पृष्ठ का अनुरोध करें, उसे कैश करें और स्रोत दिखाएं उसका।


अच्छी खोज!
तमारा वाइज्समैन

1
इस उत्तर के बाद से क्रोम बहुत बदल गया है, लेकिन यह मूल रूप से समान है: खुले देव उपकरण, सुनिश्चित करें कि नेटवर्क ट्रैफ़िक रिकॉर्ड किया गया है और नेटवर्क टैब में लॉग किया गया अनुरोध ढूंढें। पुनर्निर्देशित अनुरोधों के मामले में, आप प्रत्येक नए सिंक अनुरोध के साथ लॉग को मिटाने के लिए "लॉग को सुरक्षित रखें" या "नेविगेशन पर प्रबल लॉग" की जांच कर सकते हैं।
जॉन जेड

1
@ जोंस को इस मूर्खता का एहसास होने के बाद मैं पहले से ही Google Chrome को नापसंद कर रहा हूं। उदाहरण के लिए, मुझे ई-कॉमर्स वेबसाइट के धन्यवाद पृष्ठ के पृष्ठ स्रोत की जांच करने की आवश्यकता है (उपयोगकर्ता द्वारा लोड किए जाने के बाद पृष्ठ जीटीएम कोड की फायरिंग की जांच के लिए एक सफल भुगतान करता है)। अब पेज लोड होने पर, मैं केवल आवश्यक सत्र को फिर से अनलोड करता हूं और फिर से लोड करने पर यदि सत्र नहीं मिला है, तो मैं उपयोगकर्ता को होम पेज पर रीडायरेक्ट करता हूं। इसलिए यदि मैं Google Chrome हैक का उपयोग करने का प्रयास करता हूं, तो मैं कभी भी पृष्ठ स्रोत नहीं देख पा रहा हूं, क्योंकि यह केवल GET और POST अनुरोध को फिर से भेज सकता है, लेकिन यह सत्र को रीसेट नहीं कर सकता है। इसलिए मैं सुझाव use "Inspect Element"
दूंगा

1
@AbhishekMadhani मुझे यकीन नहीं है कि आप मुझे जवाब देना चाहते हैं, लेकिन मैंने नीचे एक टिप्पणी में जो लिखा है उसे दोहराऊंगा - ऐसा लगता है कि, क्रोम कैनरी 37 के रूप में, जब आप स्रोत को देखते हैं तो एक नया नेटवर्क अनुरोध नहीं भेजा जाता है ।
जॉन जेड

2

अच्छा सवाल - और उन सभी "यह गलत है" या "यह काम नहीं करेगा" टिप्पणियों को पढ़ने के लिए कुछ हद तक निराशाजनक है। यह व्यवहार "व्यू पेज सोर्स" को कई मामलों में विकास के लिए बेकार बनाता है।

" त्वरित स्रोत दर्शक " नामक एक एक्सटेंशन है , जो वास्तव में वर्तमान में लोड किए गए पृष्ठ के स्रोत को दिखाता है (मैंने इसे POST अनुरोधों के साथ परीक्षण नहीं किया है)।


0

मुझे आपको बताने के लिए खेद है, लेकिन यह ब्राउज़र में ब्राउज़िंग और डीबगिंग की वर्तमान प्रकृति के खिलाफ है ...

मूल स्रोत को स्मृति में नहीं रखा जाता है, लेकिन पार्स किया जाता है और जितनी जल्दी हो सके एक पार्स पेड़ में तब्दील हो जाता है, इससे बेकार स्मृति उपयोग को रोका जा सकता है। इस प्रकार, आपके द्वारा स्रोत में छिपाई गई किसी भी डीबगिंग जानकारी खो जाती है और स्पष्ट रूप से अनुरोध किया जाना चाहिए। तथाकथित वेब 2.0 साइटों में, तत्व भी बदलते हैं और यही कारण है कि निरीक्षण जैसा है ...

समाधान 1: फ़िडलर वेब डिबगर आपको HTTP ट्रैफ़िक का निरीक्षण करने की अनुमति देता है,
इससे आप अपने अंतिम अनुरोध से डीबग जानकारी देख सकते हैं।

समाधान 2: अपनी डिबगिंग जानकारी को एम्बेड करें या इसे अंत में संलग्न करें,
या शायद इसे पॉप-अप के रूप में या किसी अन्य भयानक तरीके से दिखाएं जो आपके ले-आउट को परेशान नहीं करता है।


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

Google Chrome अपने अतिसूक्ष्मवाद के लिए जाना जाता है। ;-)
तमारा विजसमैन

3
यह राक्षसी रूप से असत्य है। Chrome में आप दूसरे अनुरोध के बिना पृष्ठ के मूल स्रोत (इस रूप में पृष्ठ सहेजें) को सहेज सकते हैं। यह तब प्रदर्शित किया जाना चाहिए जब मैं "स्रोत देखें"। वर्तमान कार्यान्वयन अत्यधिक अवांछनीय है। उदाहरण के लिए जब POST का परिणाम देखते हैं। दृश्य स्रोत वर्तमान में एक ही स्थान पर एक GET करता है, जो पूरी तरह से अलग पृष्ठ दिखाता है। दृश्य स्रोत वर्तमान अनुरोध पर हमेशा पृष्ठ की स्थिति दिखाना चाहिए , भविष्य का अनुरोध नहीं।
क्रिस

6
इसमें कोई संदेह नहीं है, और यह वह जगह है जहां से व्यू सोर्स को भी पढ़ना चाहिए। एक नया अनुरोध केवल भ्रामक और गलत है।
क्रिस

2
@Jonz क्या आप व्यू सोर्स फ़ंक्शन को पूरी तरह से हटाने का तर्क दे रहे हैं? मैं इसका समर्थन करता हूँ यदि एकमात्र विकल्प वर्तमान टूटे हुए कार्यान्वयन है। लेकिन हम दोनों क्यों नहीं कर सकते हैं? देव टूलबार में नेटवर्क लॉग्स के माध्यम से क्लिक करना एक बढ़िया विकल्प है जब आपको उस स्तर की जानकारी की आवश्यकता होती है, लेकिन यदि आप वर्तमान पृष्ठ के स्रोत को देखना चाहते हैं तो यह ओवरकिल लगता है।
क्रिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.