Kaynağı görüntülerken Chrome'un sayfayı yenilemesini nasıl önleyebilirim?


20

Google Chrome'da sayfa kaynağını görüntülerken tarayıcı yeni bir sekme açar ve URL'yi temelde view-source:önekle yapıştırır . Bu istenmeyen bir durumdur.

Bir geliştirici olarak, bir form gönderdikten sonra yalnızca kaynakta görünen bazı tanı çıktıları ekleyebilirim. Chrome kaynağı görüntülemek için sayfayı yenilediğinde, bu bilgiler kaybolur.

Bu davranışı önlemek için yine de var mı?

Not: "Elemanı İncele" seçeneğini tanıyorum. Bu, tam olarak aradığınız sayfanın ham sayfa kaynağını görüntülemek için yeterli bir stand-in değildir.


Hızlı test komut dosyası

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

Gönder düğmesine tıkladıktan sonra sayfa şunu gösterir:

Array
(
    [foo] => bar
)

Sayfa kaynağını görüntülerseniz, boş bir $_POST çıktı görürsünüz

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

Güncelleme

Görünüşe göre bu hata zaten gönderildi. İç çekmek...

Etrafta iyi bir iş bilen biri varsa, çok sevinirim.


Oradaki insanlar kaynağın hafızada (minimalizm nedeniyle) tutulmadığını, manipüle edildiğini anlamıyor. Yorum kodu da görmelisiniz. Code.google.com/p/chromium/issues/detail?id=523#c47 Bu da hoş bir fikir gibi görünüyor ...
Tamara Wijsman

Yanıtlar:


12

Hata raporu sayfasında, yorum 12'de açıklanan geçici çözüm çalışır: Geliştirici Araçları'nda Kaynak İzlemeyi etkinleştirin. (Kapalıysa, etkinleştirildiğinde, o anda görünür olan sayfayı POST veya GET olarak yeniden gönderir.) Kaynaklar listesinde, kaynak kodu sunucu tarafından döndürüldüğünde görmek için ana sayfayı tıklayabilirsiniz. hem POST hem de GET istekleri için.

resim açıklamasını buraya girin

resim açıklamasını buraya girin

resim açıklamasını buraya girin

resim açıklamasını buraya girin

resim açıklamasını buraya girin

Daha fazla bilgi

Kullanılan istek yöntemi ve POSTed değeri, Chrome'un hangi istekleri yaptığını görmek için bir proxy sunucu günlüğü ve chrome://net-internals/view-cache/Chrome'un önbelleğe aldığını görmek için önek gösteren basit bir php dosyası kullanarak bazı testler yaptım .

Kaynağı Görüntüle komutunu kullandığınızda, Chrome sayfanın önbelleğe alınmış sürümünün kaynağını gösterir ve yalnızca GET yöntemi aracılığıyla istenen sayfaları önbelleğe alır.

Daha önce GET ve POST kullanarak talep ettiğiniz bir sayfaya bakıyorsanız, yalnızca GET sürümü önbelleğe alınır. Kaynağı Görüntüle komutunun kullanılması sayfayı yeniden istemez, ancak varsa, görünür durumda olan POST sürümünü değil, önbelleğe alınmış GET sürümünü gösterir.

Yalnızca POST yöntemini kullanarak istediğiniz bir sayfaya bakıyorsanız, Kaynağı Görüntüle komutunu kullanmak Chrome'un önbelleğine bakmasına, hiçbir şey bulamamasına, GET'i kullanarak sayfayı istemesine, önbelleğe almasına ve kaynağı göstermesine neden olur bunun.


Güzel keşif!
Tamara Wijsman

1
Chrome bu yanıttan bu yana çok değişti, ancak temel olarak aynı: geliştirici araçlarını açın, ağ trafiğinin kaydedildiğinden emin olun ve Ağ sekmesine kaydedilen isteği bulun. Yeniden yönlendirilen istekler durumunda, her yeni senkronizasyon isteğiyle günlüğü silmemek için "Günlüğü koru" veya "navigasyon sırasında ön günlüğü" işaretleyebilirsiniz.
Jon z

1
@Jonz bu aptallığı fark ettikten sonra zaten Google Chrome'dan hoşlanmıyorum. Örneğin, E-ticaret web sitesinin Teşekkür sayfasının sayfa kaynağını kontrol etmem gerekiyordu (kullanıcı GTM kodunun tetiklenmesini kontrol etmek için başarılı bir ödeme yaptıktan sonra yüklenen sayfa). Şimdi sayfanın yüklenmesinde, gerekli oturumu ayarlamıyorum ve oturum bulunmazsa yeniden yükleme sırasında kullanıcıyı ana sayfaya yönlendiriyorum. Google Chrome kesmek kullanmaya çalışırsam, sayfa kaynağını hiçbir zaman görüntüleyemem, çünkü yalnızca GET ve POST isteğini yeniden gönderebilir, ancak oturumu sıfırlayamaz. Bu yüzden öneririmuse "Inspect Element"
Abhishek Madhani

1
@AbhishekMadhani Bana cevap geliyordu emin değilim, ama aşağıda ben bir yorumda yazdıklarını tekrarlamak olacak - bu gibi görünüyor, yeni bir ağ isteği olan Chrome Canary 37 itibariyle değil Kaynağı görüntülediğinizde gönderilen .
Jon z

2

İyi soru - ve tüm bu "bu yanlış" veya "bu işe yaramaz" yorumları okumak biraz hayal kırıklığı. Bu davranış, "sayfa kaynağını görüntüle" özelliğini birçok durumda geliştirme için işe yaramaz hale getirir.

Aslında şu anda yüklü sayfanın kaynağını göstermek gibi görünen " Hızlı kaynak görüntüleyici " adlı bir uzantı var (Ben olsa POST istekleri ile test etmedim).


0

Size söylediğim için üzgünüm, ama bu tarayıcıda tarama ve hata ayıklamanın mevcut doğasına aykırı ...

Orijinal kaynak bellekte tutulmaz, ancak gereksiz bellek kullanımını önlemek için mümkün olduğunca hızlı ayrıştırılır ve ayrıştırılır. Bu nedenle, kaynakta gizlediğiniz tüm hata ayıklama bilgileri kaybolur ve açıkça istenmelidir. Web 2.0 olarak adlandırılan sitelerde, öğeler de değişir ve denetimin nedeni budur ...

1. Çözüm: Fiddler Web Hata Ayıklayıcısı , HTTP trafiğini denetlemenizi
sağlar ; bu, son isteğinizdeki hata ayıklama bilgilerini görmenizi sağlar.

Çözüm 2: Hata ayıklama bilgilerinizi gömün veya sonuna ekleyin
ya da bir açılır pencere olarak veya düzeninizi rahatsız etmeyen harika bir şekilde gösterin.


13
TomWij, "bu bir tarayıcıda tarama ve hata ayıklamanın mevcut doğasına aykırıdır ..." bu sadece yanlıştır. Firefox ve Safari'nin mevcut sürümlerinin her ikisi de "beklenen" gibi davranır. Aslında, bu özellikleri diğer tarayıcılarda kullandığım için onları Chrome'da beklemeye geldim. Bellekte orijinal kaynak için birkaç KB düz metin tutmak zor olmamalıdır.
macek

Google Chrome minimalizmiyle tanınır. ;-)
Tamara Wijsman

3
Bu açıkça yanlıştır. Chrome'da, ikinci bir istekte bulunmadan sayfanın orijinal kaynağını (Sayfayı farklı kaydet) kaydedebilirsiniz. "Kaynağı Göster" i gördüğümde görüntülenmesi gereken budur. Mevcut uygulama oldukça istenmeyen bir durumdur. Örneğin bir POST sonucunu görüntülerken. Görünüm kaynağı şu anda tamamen farklı bir sayfa gösteren aynı konuma GET yapıyor. Görünüm kaynağı , gelecekteki bir istek DEĞİL olarak her zaman geçerli istekte sayfanın durumunu göstermelidir .
Chris

6
Hiç şüphe yok ki, Görünüm Kaynağı da buradan okunmalıdır. Yeni bir istek basitçe yanıltıcı ve yanlıştır.
Chris

2
@Jonz Kaynağı Görüntüle işlevini tamamen kaldırmayı mı düşünüyorsunuz? Tek alternatif mevcut kırık uygulama ise bunu destekleyeceğim. Ama neden ikisine birden sahip olamıyoruz? Geliştirici araç çubuğundaki ağ günlüklerine tıklamak, bu bilgi düzeyine ihtiyaç duyduğunuzda sahip olmak için harika bir seçenektir, ancak yalnızca geçerli sayfanın kaynağını görmek istiyorsanız aşırıya kaçmış gibi görünüyor.
Chris
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.