


Tutorial mengenai pencegahan halaman melompat dan menyegarkan halaman semasa setelah menggunakan permintaan post asynchronous
Oct 15, 2025 pm 04:12 PMApabila menggunakan API JavaScript's `Fetch` untuk membuat permintaan postynchronous, pemaju sering menghadapi masalah yang halaman itu tidak disangka -sangka melompat ke titik akhir API selepas permintaan selesai. Artikel ini akan terperinci bagaimana untuk mengelakkan tingkah laku navigasi halaman lalai dengan menetapkan jenis butang ke `butang` atau menggunakan` event.PreventDefault () `dalam acara penyerahan borang, dan gunakan kaedah lokasi.reload ()` untuk menyegarkan halaman semasa selepas permintaan `fetch`
Penyebab dan penyelesaian biasa untuk melompat halaman selepas permintaan tidak segerak
Apabila menggunakan API Fetch untuk menghantar data ke backend, terutamanya apabila mengemas kini data melalui permintaan pos, kami biasanya berharap bahawa selepas data dikemas kini, pengguna masih akan tetap berada di halaman semasa, dan kandungan halaman akan mencerminkan perubahan data terkini. Walau bagaimanapun, kekecewaan yang sama adalah bahawa penyemak imbas secara automatik boleh menavigasi ke URL sasaran permintaan pos (iaitu titik akhir API) selepas permintaan selesai. Ini biasanya tidak diingini tingkah laku kerana ia memecahkan pengalaman pengguna untuk aplikasi halaman tunggal atau kemas kini separa.
Sebab utama tingkah laku ini adalah:
- Tingkah laku lalai butang: elemen
dalam html, jika ia terletak di dalam tag - Penyerahan borang yang tidak disekat: Walaupun butang tidak berada dalam bentuk, atau dibuat secara dinamik melalui JavaScript, ia boleh menyebabkan halaman melompat jika tingkah lakunya berakhir mensimulasikan penyerahan borang.
Untuk menyelesaikan masalah ini, kita perlu mengambil dua langkah teras: mencegah navigasi halaman dan menyegarkan halaman semasa selepas permintaan berjaya.
1. Mencegah tingkah laku navigasi halaman lalai
Bergantung pada kes penggunaan butang, terdapat dua cara utama untuk mengelakkan navigasi halaman:
Kaedah 1: Menentukan butang jenis butang secara eksplisit
Jika butang anda digunakan untuk mencetuskan fungsi JavaScript dan bukannya menyerahkan keseluruhan borang, maka kaedah yang paling mudah adalah untuk menetapkan atribut jenisnya kepada "butang". Ini dengan jelas akan memberitahu penyemak imbas bahawa butang itu tidak boleh mencetuskan tingkah laku penyerahan bentuk tradisional.
Contoh HTML:
<span onclick="addGuestName (this)"> <butang kelas="addpaxname btn btn-xs btn-warning" type="button"> tambah </butang> </span>
Dengan menambah Type = "Button", mengklik butang ini tidak lagi menyebabkan halaman melompat.
Kaedah 2: Mencegah tingkah laku lalai dalam acara penyerahan borang (Event.PreventDefault ())
Jika butang anda sebenarnya berada di dalam tag
Contoh JavaScript:
document.getElementById ('GuestForm'). AddEventListener ('Submit', Function (Event) { event.PreventDefault (); // Mencegah tingkah laku penyerahan lalai borang // panggil fungsi pengambilan asynchronous anda di sini // updateguestName (paxid, nama); });
Dalam kod asal anda, butang mencetuskan fungsi updateguestName melalui addEventListener ('klik', ...), dan butang dibuat secara dinamik. Jika butang tidak dinyatakan dengan jelas dengan jenis = "butang" dan elemen ibu bapa atau nenek moyangnya adalah
Atas ialah kandungan terperinci Tutorial mengenai pencegahan halaman melompat dan menyegarkan halaman semasa setelah menggunakan permintaan post asynchronous. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

UseFilter_var () TOVALIDATEMailSyntaxandCheckDnsrr () TOVERIFYDOnMAINMXRECORDS.example: $ e -mel = "user@example.com"; if (filter_var ($ e -mel, filter_email) && checkDnsrr (expode '

Artikel ini membincangkan secara mendalam bagaimana menggunakan pernyataan kes untuk melakukan pengagregatan bersyarat di MySQL untuk mencapai penjumlahan bersyarat dan mengira bidang tertentu. Melalui kes sistem langganan praktikal, ia menunjukkan bagaimana secara dinamik mengira jumlah tempoh dan bilangan peristiwa berdasarkan status rekod (seperti "akhir" dan "membatalkan"), dengan itu mengatasi batasan fungsi jumlah tradisional yang tidak dapat memenuhi keperluan pengagregatan bersyarat kompleks. Tutorial menganalisis penerapan pernyataan kes dalam jumlah fungsi secara terperinci dan menekankan pentingnya bersatu ketika berurusan dengan nilai nol yang mungkin dari gabungan kiri.

UseUnserialize (Serialize ($ obj)) fordeepcopyingWhenallDataisserizable; jika tidak, pelaksanaan__clone () tomanuallyduplicatenestedObjectsandavoidsharedReferences.

UseArray_Merge () toCombineArrays, OverwritingDuplicateStringKeySandreIndexingNumericKeys; forsimplerconcatenation, terutamaInphp5.6, usethesplatoperator [... $ array1, ... $ array2].

Namespacesinphporganizecodeandpreventnamingnamingconflictsbygroupinglasses, antara muka, fungsi, dan constantsunderaspecificname.2.defineAnamespaceusingthenamespaceywordetopofafile, diikuti olehbythenamespaceakenam

Toupdateadatabaserecordinphp, firstConnectusingPdoormySqli, thenusePePreparedStatementStoExecuteAseCureSqlupDateQuery.example: $ pdo = newpdo ("mysql: host = localhost; dbName = your_database: $ userbase: $ userbase"

The__call () methodistriggeredWhenaninaccessibleorundefinedmethodiscalledonanObject, membolehkanCustomHandlylyAccepteThemeThodnamnamnamnents, asshownwhencallingundefinedmethodslikesayhello ()

UsePathinfo ($ FileName, pathinfo_extension) togetthefileextension; itreliLyHandlesmultipledotsandgecases, returnTheExtension (mis., "Pdf") Oranemptystringifnoneexists.
