pertanyaan:
Ada kontrol di formulir web, yang terbaik adalah kontrol ini mengakses database secara real time. Begitu ada perubahan di database, data akan dikirimkan ke klien dan data terbaru akan ditampilkan.
menganalisa:
Karena klien perlu diperbarui, fungsi jam front-end js harus digunakan. Server telah berubah, dan klien perlu menyegarkan untuk memperbarui data. Bagaimana cara memperbarui data tanpa menyegarkan, atau menyegarkan halaman secara salah , artinya, klien pada dasarnya melihat Tidak ada penyegaran.
Solusi : (mohon koreksi jika ada kesalahan, level saya terbatas, terima kasih)
Ada dua solusi utama: real-time dan polling
Real-time: Memicu dengan menambahkan pemicu di database, lalu menulis file di server untuk digunakan sebagai semaphore. Menurut saya teknologi ini terlalu rumit untuk masalah ini, jadi saya belum mempelajarinya lebih lanjut. Teman-teman yang berminat bisa ke MSDN untuk melihatnya, tapi memang bisa update data secara real time, yang paling efektif untuk real-time. percakapan.
Polling: 1. Gunakan xmlhttp tanpa metode penyegaran. Untuk metode ini, Anda dapat membaca artikel yang ditulis oleh orang lain yang saya teruskan sebelumnya, yang memiliki pengenalan rinci.Namun, setelah mengujinya, saya menemukan bahwa yang diperoleh dari server adalah kode HTML dari seluruh halaman yang Anda perlukan dapatkan konten kontrol yang Anda butuhkan darinya, dan ulangi. Konfigurasinya masih terlalu rumit dan belum tentu efisien.
2. Gunakan kerangka HTML untuk menyelesaikannya, yang merupakan metode utama saya menulis. Metode ini sederhana dan mudah diterapkan. Saya rasa ini sangat berguna untuk situasi di mana hanya data kecil yang ditampilkan secara dinamis.
Pengenalan mendetail: Tulis iframe src="../test/WebForm2.aspx" di tempat HTML perlu diperbarui. Src adalah halaman yang akan dihubungkan, lalu sesuaikan ukuran bingkai dan bilah gulir sesuai kebutuhan.
Buat halaman baru WebForm2.aspx sebagai halaman koneksi berbingkai. Letakkan kontrol yang perlu diperbarui secara real time di halaman ini, dan kemudian di acara Page_Load
Sub Page_Load Pribadi (Pengirim ByVal Sebagai System.Object, ByVal dan Sebagai System.EventArgs) Menangani MyBase.Load
'Tempatkan kode untuk mendapatkan pembaruan basis data di sini dan kaitkan dengan kontrol End Sub
Kemudian tambahkan meta HTTP-EQUIV="Refresh" content="1" URL="/test/WebForm2.aspx" ke html
Artinya halaman ini akan otomatis di-refresh setiap 1 detik (Anda juga dapat menambahkan jam latar depan seperti window.setInterval(function,1000) sesuai dengan situasi sebenarnya), sehingga hasilnya selesai setelah halaman pertama dimulai , halaman kedua tidak akan terputus. Ini disegarkan setelah beberapa saat, tetapi klien merasakan hal yang sama seolah-olah tidak disegarkan.