Bagaimana mencegah Chrome menyegarkan halaman saat melihat sumber?

20

Saat melihat sumber halaman di Google Chrome, browser membuka tab baru dan pada dasarnya menempelkan URL dengan view-source:awalan. Ini tidak diinginkan.

Sebagai pengembang, saya dapat menyertakan beberapa hasil diagnostik yang hanya terlihat di sumber setelah mengirimkan formulir. Ketika Chrome Menyegarkan halaman untuk melihat sumbernya, itu membuat informasi ini hilang.

Apakah ada cara untuk mencegah perilaku ini?

Catatan: Saya terbiasa dengan opsi "Inspect Element". Ini tidak cukup memadai untuk melihat sumber halaman mentah dari halaman yang Anda lihat.


Skrip uji cepat

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

Setelah mengklik tombol kirim, halaman ditampilkan

Array
(
    [foo] => bar
)

Jika Anda melihat sumber halaman, Anda akan melihat output kosong $_POST

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

Memperbarui

Rupanya bug ini sudah dikirimkan. Mendesah...

Jika ada yang tahu tentang pekerjaan yang baik di sekitar, saya akan sangat menghargainya.

macek
sumber
Orang-orang di sana tidak mengerti bahwa sumbernya tidak disimpan dalam memori (karena minimalis) tetapi dimanipulasi. Anda harus melihat komentar code.google.com/p/chromium/issues/detail?id=523#c47 sebagai yang tampaknya ide yang bagus juga ...
Tamara Wijsman

Jawaban:

12

Dari halaman laporan bug, solusi yang disebutkan dalam komentar 12 berfungsi: Di ​​Alat Pengembang, aktifkan Pelacakan Sumber Daya. (Jika tidak aktif, mengaktifkannya akan mengirimkan kembali permintaan yang menghasilkan halaman yang saat ini terlihat, baik POST atau GET.) Dalam daftar Sumber Daya, Anda dapat mengklik halaman utama untuk melihat kode sumber seperti yang dikembalikan oleh beberapa untuk permintaan POST dan GET.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Informasi lebih lanjut

Saya menjalankan beberapa tes menggunakan file php sederhana yang menunjukkan metode permintaan yang digunakan dan nilai POSTed, log server proxy untuk melihat permintaan yang dibuat Chrome, dan chrome://net-internals/view-cache/awalan untuk melihat apa yang Chrome caching.

Saat Anda menggunakan perintah Lihat Sumber, Chrome menunjukkan sumber dari versi halaman yang di - cache , dan itu hanya cache halaman yang diminta melalui metode GET.

Jika Anda melihat halaman yang sebelumnya Anda minta menggunakan GET dan POST, maka hanya versi GET yang di-cache. Menggunakan perintah Lihat Sumber tidak akan meminta kembali halaman, tetapi akan menampilkan versi GET yang di-cache, bukan versi POST yang saat ini terlihat, jika ada.

Jika Anda melihat halaman yang hanya Anda minta menggunakan metode POST, maka menggunakan perintah View Source akan menyebabkan Chrome mencari dalam cache-nya, tidak menemukan apa pun, meminta halaman menggunakan GET, cache, dan perlihatkan sumbernya. dari itu.

Bavi_H
sumber
Penemuan yang bagus!
Tamara Wijsman
1
Chrome telah banyak berubah sejak jawaban ini tetapi pada dasarnya sama: alat pengembang terbuka, pastikan lalu lintas jaringan direkam dan temukan permintaan yang dicatat di tab Jaringan. Dalam kasus permintaan yang dialihkan, Anda dapat memeriksa "Simpan log" atau "log pra-navigasi" untuk tidak menghapus log dengan setiap permintaan sinkronisasi baru.
Jon z
1
@ Jonz setelah menyadari kebodohan ini saya sudah tidak menyukai Google Chrome. Misalnya saya perlu memeriksa sumber halaman dari halaman Terima kasih situs web E-commerce (halaman dimuat setelah pengguna melakukan pembayaran yang berhasil, untuk memeriksa penembakan kode GTM). Sekarang saat memuat halaman, saya cukup mengeset sesi yang diperlukan dan kembali memuat jika sesi tidak ditemukan, saya mengarahkan pengguna ke halaman rumah. Jadi jika saya mencoba menggunakan hack Google Chrome, saya tidak pernah dapat melihat sumber halaman, karena itu hanya dapat mengirim ulang permintaan GET dan POST, tetapi tidak dapat mengatur ulang sesi. Karena itu saya sarankanuse "Inspect Element"
Abhishek Madhani
1
@AbhishekMadhani Saya tidak yakin Anda bermaksud membalas saya, tetapi saya akan mengulangi apa yang saya tulis dalam komentar di bawah ini - sepertinya, pada Chrome Canary 37, permintaan jaringan baru tidak dikirim ketika Anda melihat sumbernya .
Jon z
2

Pertanyaan bagus - dan agak mengecewakan untuk membaca semua komentar "ini salah" atau "ini tidak akan berhasil". Perilaku ini membuat fitur "Lihat sumber halaman" tidak berguna untuk pengembangan dalam banyak kasus.

Ada ekstensi yang disebut " Quick source viewer ", yang tampaknya benar-benar menunjukkan sumber halaman yang sedang dimuat (saya belum mengujinya dengan permintaan POST).

basic6
sumber
0

Saya minta maaf untuk memberitahu Anda, tetapi ini bertentangan dengan sifat browsing dan debugging saat ini di browser ...

Sumber asli tidak disimpan dalam memori, tetapi diuraikan dan diubah menjadi pohon parsing secepat mungkin, ini untuk mencegah penggunaan memori yang tidak berguna. Dengan demikian, setiap informasi debug yang Anda sembunyikan di sumber hilang dan harus diminta secara eksplisit. Di situs Web 2.0 yang disebut, elemen juga berubah dan itulah sebabnya inspeksi seperti itu ...

Solusi 1: Fiddler Web Debugger memungkinkan Anda memeriksa lalu lintas HTTP,
ini memungkinkan Anda melihat informasi debug dari permintaan terakhir Anda.

Solusi 2: Sematkan informasi debug Anda atau tambahkan di bagian akhir,
atau mungkin tampilkan sebagai sembulan atau dengan cara luar biasa lainnya yang tidak mengganggu tata letak Anda.

Tamara Wijsman
sumber
13
TomWij, "ini bertentangan dengan sifat perambanan dan debugging saat ini di peramban ..." ini benar-benar tidak akurat. Versi Firefox dan Safari saat ini berlaku sebagai "diharapkan". Bahkan, karena saya telah menggunakan fitur ini di browser lain, saya datang untuk mengharapkannya di Chrome. Menyimpan beberapa KB teks biasa untuk sumber asli dalam memori seharusnya tidak sulit.
macek
Google Chrome dikenal karena minimalisnya. ;-)
Tamara Wijsman
3
Ini terbukti salah. Di Chrome Anda dapat menyimpan sumber asli halaman (Save page as) tanpa melakukan permintaan kedua. Inilah yang harus ditampilkan ketika saya "Lihat Sumber". Implementasi saat ini sangat tidak diinginkan. Misalnya saat melihat hasil POST. Lihat sumber saat ini melakukan GET ke lokasi yang sama, menampilkan halaman yang sama sekali berbeda. Sumber tampilan harus selalu menunjukkan keadaan halaman pada permintaan saat ini , BUKAN permintaan di masa depan.
Chris
6
Tidak diragukan lagi, dan di situlah Sumber View juga harus dibaca. Permintaan baru hanya menyesatkan dan salah.
Chris
2
@ Jonz Apakah Anda berdebat untuk menghapus fungsi Lihat Sumber sama sekali? Saya akan mendukung ini jika satu-satunya alternatif adalah implementasi yang rusak saat ini. Tetapi mengapa kita tidak bisa memiliki keduanya? Mengeklik log jaringan di bilah alat dev adalah opsi yang bagus untuk dimiliki ketika Anda membutuhkan tingkat informasi itu, tetapi jika Anda hanya ingin melihat sumber untuk halaman saat ini, itu kelihatannya berlebihan.
Chris