चलो कहते हैं कि मैं/पेज पर हूँ चलो? Id = 1इतिहास में एक ही पृष्ठ के बाद पुन: निर्देशन-मिल (पीआरजी) फिर से आवेषण वेबकिट ब्राउज़रों में
तब मैं/पृष्ठ पर नेविगेट? Id = 2
और मैं उस पृष्ठ पर एक बदलाव करता हूं, जो एक पोस्ट लागू करता है और फिर/पृष्ठ पर रीडायरेक्ट करता है? Id = 2
फ़ायरफ़ॉक्स में, मैं एक बार बैक बटन दबा सकता हूं और/पृष्ठ पर वापस आ सकता हूं? Id = 1, लेकिन आईफोन पर क्रोम और सफारी में, मुझे बैक बटन दो बार हिट करना होगा क्योंकि/पेज? id = 2 ब्राउज़र इतिहास में दो बार है। (और यदि मैंने id = 2 से कई पोस्ट किए हैं, तो मुझे बैक बटन को हिट करना होगा जो अंततः आईडी = 1 पर वापस आ जाएगा।)
कुछ तरीकों से, यह सामान्य ब्राउज़र व्यवहार जैसा लगता है, प्रत्येक के रूप में जीईटी को इतिहास में आसानी से धक्का दिया जाता है, लेकिन चूंकि यूआरएल पिछली प्रविष्टि के समान है, इसलिए इसका परिणाम खराब उपयोगकर्ता अनुभव में होता है, जो आम तौर पर अन्य वेब अनुप्रयोगों से बचा जाता है ... और स्वाभाविक रूप से फ़ायरफ़ॉक्स से बचा जाता है। क्या यह वेबकिट ब्राउज़र में एक अपरिहार्य बग है, या क्या मैं इससे बचने के लिए पीआरजी को एक अलग तरीके से कार्यान्वित कर सकता हूं?
btw- व्यवहार के साथ 302 या 303
अद्यतन एक ही पुन: निर्देशित हो गया लगता है: मैं कुछ नमूना कोड मज़ाक उड़ाया है ... jsfiddle जहां की तरह एक मंच हो, तो पता नहीं है मैं इस अपलोड कर सकते हैं आप कार्रवाई में देखने के लिए:
form.php:
id=<?=$_REQUEST['id']?>
<form action="submit.php" method="post">
<input type="hidden" name="id" value="<?=$_REQUEST['id']?>">
<input type="submit" value="submit">
</form>
submit.php:
<?php
header("Location: form.php?id=" . $_REQUEST['id']);
die($_REQUEST['id']);
?>
अगर मैं form.php पर शुरू होता हूं? Id = 4 (बस इसे ब्राउज़र इतिहास में डालने के लिए) और फिर form.php? Id = 5 पर जाएं और फिर सबमिट करें (जैसे डेटाबेस परिवर्तन निष्पादित करने के लिए) फ़ायरफ़ॉक्स में मुझे प्रत्येक के लिए इतिहास में एक प्रविष्टि मिलती है; क्रोम में मुझे आईडी = 4 के लिए एक प्रविष्टि मिलती है और फिर आईडी = 5 के लिए दो प्रविष्टियां मिलती हैं। व्यवहार में अंतर क्यों? मुझे लगता है कि फ़ायरफ़ॉक्स का व्यवहार बेहतर है, क्योंकि id = 5 से दूर जाने के लिए दो बार पीछे हटना उपयोगकर्ता के प्रति अंतर्ज्ञानी है।
धन्यवाद। मैं देखता हूं कि यह कैसे काम करता है, लेकिन वाह, सुंदर चौराहे के दृष्टिकोण, एक साधारण फॉर्म सबमिशन के लिए iframes, जावास्क्रिप्ट इत्यादि की आवश्यकता होती है (और उम्मीद है कि ब्राउजर आईफ्रेम के कारण अपने इतिहास को प्रदूषित नहीं करता है)। मुझे अभी भी उम्मीद है कि कोई वेबकिट में मानक पीआरजी के दौरान ब्राउज़र इतिहास व्यवहार के अंतर्निहित यांत्रिकी को संबोधित कर सकता है, और देख सकता है कि इसे संबोधित करने के लिए कोई और प्रत्यक्ष समाधान है या नहीं। – dlo
अच्छी टिप्पणी के लिए धन्यवाद। और हां, मैकेनिक्स वास्तव में कैसे काम करता है इस बारे में वास्तविक स्पष्टीकरण प्राप्त करना अच्छा लगेगा। –
हाँ, मैं एक बार खराब हो गया जब मैंने फ़ायरफ़ॉक्स के बारे में एक प्रश्न पूछा और वास्तव में फ़ायरफ़ॉक्स देव टीम पर मौजूद किसी व्यक्ति ने जवाब दिया। :) – dlo