cari
Rumahhujung hadapan webTutorial H5Penerokaan mendalam teknik tutorial API_html5 Sejarah HTML5

Sejarah memang menarik, bukan? Dalam versi HTML sebelumnya, kami mempunyai manipulasi sejarah penyemakan imbas yang sangat terhad. Kita boleh berulang-alik dengan kaedah apa yang boleh kita gunakan, tetapi itu sahaja yang boleh kita lakukan.

Walau bagaimanapun, menggunakan API Sejarah HTML 5, kami boleh mempunyai kawalan yang lebih baik ke atas sejarah penyemak imbas. Contohnya: kita boleh menambah rekod pada senarai rekod sejarah, atau mengemas kini URL bar alamat apabila tiada muat semula.
Mengapa memperkenalkan API Sejarah?

Dalam artikel ini, kita akan memahami asal usul API Sejarah dalam HTML 5. Sebelum ini, kami sering menggunakan nilai cincang untuk mengubah kandungan halaman, terutamanya yang sangat penting untuk halaman tersebut. Kerana tiada penyegaran, adalah mustahil untuk menukar URL aplikasi satu halaman. Selain itu, apabila anda menukar nilai cincang URL, ia tidak mempunyai kesan pada sejarah penyemak imbas.

Kemudian, kini dengan API Sejarah HTML 5, ini mudah dilaksanakan, tetapi memandangkan aplikasi satu halaman tidak perlu menggunakan nilai cincang, ia mungkin memerlukan skrip pembangunan tambahan. Ia juga membolehkan kami membina aplikasi baharu dengan cara yang mesra SEO. Selain itu, ia mengurangkan lebar jalur, tetapi bagaimana untuk membuktikannya?

Dalam artikel ini, saya akan menggunakan API Sejarah untuk membangunkan aplikasi satu halaman untuk membuktikan masalah di atas.

Ini juga bermakna saya perlu memuatkan sumber yang diperlukan pada halaman utama terlebih dahulu. Mulai sekarang, halaman hanya memuatkan kandungan yang diperlukan. Dengan kata lain, aplikasi tidak memuatkan semua kandungan pada permulaan Ia akan dimuatkan apabila kandungan aplikasi kedua diminta.

Ambil perhatian bahawa anda perlu melakukan beberapa pengekodan sisi pelayan untuk hanya menyampaikan sebahagian daripada sumber, bukannya kandungan halaman yang lengkap.
Sokongan penyemak imbas

Pada masa menulis artikel ini, sokongan untuk API Sejarah oleh pelayar utama adalah sangat baik. Anda boleh klik di sini untuk melihat status sokongannya berlatih untuk mengesan ciri khusus yang disokong.

Untuk menentukan sama ada penyemak imbas menyokong API ini dengan menukar kaedah, anda boleh menggunakan baris kod berikut untuk menyemak:

Kod XML/HTMLSalin kandungan ke papan keratan
  1. kembali !!(tetingkap.sejarah && sejarah.pushState);
Selain itu, saya mengesyorkan merujuk artikel ini: Kesan Sokongan untuk Pelbagai Ciri HTML5 (ps: akan diterjemahkan kemudian)
Jika anda menggunakan penyemak imbas moden, anda boleh menggunakan kod berikut:



Kod XML/HTML
Salin kandungan ke papan keratan
    jika (Modernizr.sejarah) {
  1. // API Sejarah Disokong
  2. }
  3. Jika penyemak imbas anda tidak menyokong API Sejarah, anda boleh menggunakan history.js sebaliknya.
    Gunakan Sejarah

    HTML 5 menyediakan dua kaedah baharu:

    1. history.pushState(); 2. history.replaceState();

    Kedua-dua kaedah membolehkan kami menambah dan mengemas kini sejarah, ia berfungsi sama dan boleh menambah bilangan parameter yang sama. Selain kaedah, terdapat juga acara popstate. Dalam artikel berikut, kami akan memperkenalkan cara menggunakan dan masa untuk menggunakan acara popstate.

    Parameter pushState() dan replaceState() adalah sama, dan perihalan parameter adalah seperti berikut:

    1. nyatakan: menyimpan rentetan JSON, yang boleh digunakan dalam acara popstate.

    2. tajuk: Kebanyakan penyemak imbas tidak menyokong atau mengabaikan parameter ini sekarang. Sebaiknya gunakan null

    3. url: Mana-mana URL yang sah, digunakan untuk mengemas kini bar alamat penyemak imbas, tidak kira sama ada URL itu sudah wujud dalam senarai alamat. Lebih-lebih lagi, ia tidak memuatkan semula halaman.

    Perbezaan utama antara kedua-dua kaedah ialah: pushState() menambah entri baharu pada timbunan sejarah dan replaceState() menggantikan nilai rekod semasa. Jika anda masih keliru tentang perkara ini, gunakan beberapa contoh untuk menunjukkan perbezaannya.

    Katakan kita mempunyai dua blok tindanan, satu berlabel 1 dan satu lagi berlabel 2, dan anda mempunyai blok tindanan ketiga berlabel 3. Apabila pushState() dilaksanakan, blok tindanan 3 akan ditambah pada tindanan sedia ada, jadi tindanan akan mempunyai 3 tindanan blok.

    Di bawah senario hipotetikal yang sama, apabila replaceState() dilaksanakan, blok 3 akan diletakkan pada timbunan blok 2. Oleh itu, bilangan rekod sejarah kekal tidak berubah, iaitu pushState() akan menambah bilangan sejarah sebanyak 1.

    Keputusan perbandingan adalah seperti berikut:
    201579164334835.jpg (498×321)

    Pada ketika ini, untuk mengawal sejarah penyemak imbas, kami telah mengabaikan peristiwa pushState() dan replaceState(). Tetapi dengan mengandaikan pelayar mengira banyak rekod buruk, pengguna mungkin dialihkan ke halaman ini, atau mungkin tidak. Dalam kes ini, masalah yang tidak dijangka timbul apabila pengguna menggunakan butang navigasi ke hadapan dan belakang penyemak imbas.

    Walaupun apabila kami menggunakan pushState() dan replaceState() untuk pemprosesan, kami menjangkakan peristiwa popstate akan dicetuskan. Tetapi pada hakikatnya, ini tidak berlaku. Sebaliknya, apabila anda menyemak imbas sejarah sesi, sama ada anda mengklik butang ke hadapan atau belakang, atau menggunakan kaedah history.go dan history.back, popstate akan dicetuskan.

     Dalam penyemak imbas WebKit, peristiwa popstate akan dicetuskan selepas acara pemuatan dokumen, tetapi Firefox dan IE tidak mempunyai tingkah laku ini.
    Contoh tunjuk cara

    HTML:

    Kod XML/HTMLSalin kandungan ke papan keratan
    1. div kelas="bekas" >  
    2.     div kelas="baris" >  
    3.         ul kelas="nav nav -nav">  
    4.              li>aaa href="home.html" kelas="historyAPI">Rumaha>< ;/li
    5. >
    6.                 li>aaa href="about.html" kelas="historyAPI">Mengenaia>
    7. < ;/
    8. li>                li>aaa href="contact.html" kelas="historyAPI">Hubungi
    9. a
    10. >< ;/li>  
    11.         ul>  
    12.     div>       div
    13.  
    14. kelas="baris" >           div
    15.  
    16. kelas="col- md-6">                div
    17.  kelas="well >  
    18.                  Klik pada Pautan di atas untuk melihat sejarah penggunaan API menggunakan kod>h> > 🎜>kod> kaedah.                 
    19. div>           
    20. div>           
    21. div kelas="baris" >                    
    22. div kelas=">  id="contentHolder">                   
    23. h1>Rumah!🎜>h1>                   
    24. p>Lorem Ipsum hanyalah tiruan >span gaya="lebar: auto; tinggi: auto; terapung: tiada;" id="5_nwp">a  gaya="teks-hiasan: tiada;" mpid ="5" sasaran="_kosong" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv =0&is_app=0&jk=f7cb547a6e640f0a&k=printing&k0=printing&kdi0=0&luki=5&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=ef7f64c =tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/5360 .html&urlid=0" id="5_nwl">span gaya="color:#0000ff;font-size:14px;width:auto;height :auto;float:none;">mencetakspan> a>span> dan industri tetapan taip.p>  
    25.  div>
    26.  div>
    27.  div> 
    28. div>

    JavaScript:

    Kod XML/HTMLSalin kandungan ke papan keratan
    1. skrip taip="teks/span style="lebar: auto; ketinggian: auto; terapung: tiada;" id="1_nwp"> a gaya="teks-hiasan: tiada;" mpid="1" sasaran="_kosong" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di= . d=0&t=tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/ 5360.html&urlid=0" id="1_nwl">< ;span gaya="color:#0000ff;font-size:14px;width:auto; height:auto;float:none;">javascriptspan>a>span>">  
    2.     jQuery('dokumen').sedia(fungsi(){   
    3.              
    4.         jQuery('.historyAPI').on('klik', fungsi(e){   
    5.             e.preventDefault();   
    6.              var href = $(this).attr('href');   
    7.                  
    8.             // Mendapatkan Kandungan   
    9.             getContent(href, true);   
    10.                  
    11.             jQuery('.historyAPI').removeClass('active');   
    12.             $(ini).span gaya="lebar: auto; tinggi: auto; terapung: tiada;" id="2_nwp">a gaya="teks-hiasan: tiada ;" mpid="2" sasaran ="_kosong" href="http://cpro.baidu.com/cpro/ui /uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=f7cb547a6e640f0a&k=add&k0=add&kdi0=0&luki=p=0&b010&r=0&luki=p=0cb547a6e640f0a&k=add&k0=add&kdi0=0&luki=3&n=6011 =1&id_penjual=1&sid=a0f646e7a54cbf7&ssp2=1&stid=0&t =tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/5360.html&urlid=0" id=> id=>>span gaya="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">tambah span>a>span>
    13. Kelas('aktif');   
    14.         });   
    15.              
    16.     });   
    17.          
    18.     // Menambahkan pendengar acara popstate untuk mengendalikan butang belakang pelayar    
    19.     window.addEventListener("popstate", fungsi(e) {   
    20.              
    21.         // Dapatkan nilai State menggunakan e.state   
    22.         getContent(location.pathname, false);        });   
    23.          
    24.     fungsi getContent(url, addEntry) {   
    25.         $.get(url)   
    26.         .selesai(fungsi( span gaya="lebar: auto; tinggi: auto; terapung: tiada;" id="3_nwp">a gaya="teks-hiasan: tiada ;" mpid="3" sasaran ="_kosong" href="http://cpro.baidu.com/cpro/ui /uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=f7cb547a6e640f0a&k=data&k0=data&kdi0=0&luki=6&n=10&c=8&p=10&c=8 1&seller_id=1&sid=a0f646e7a54cbf7&ssp2=1&stid=0&t =tpclicked3_hc&tu=u1922429&u=http://www.admin10000.com/document/5360.html&urlid=0" id=> id=>>span gaya="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">data span>a>span
    27. > ) {   
    28.                  
    29.             // Mengemas kini Kandungan pada Halaman   
    30.             $('#contentHolder').html(data);   
    31.                  
    32.              jika(span gaya="> id="4_nwp"> a gaya="teks-hiasan: tiada;" mpid="4" sasaran="_kosong" href="http://cpro.baidu.com/cpro/ui/uijs. php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=0&is_app=0&jk=f7cb547a6e640f0a&k=add&k0=add&kdi0=0&luki=3&n=11&q70=10&p=080&r=11&p=08 eller_id=1&sid=a0f646e7a54cbf7&ssp2=1&stid=0&t=tpclicked3_hc&tu= u1922429&u=http://www.admin10000.com/document/5360.html&urlid=0" id="4_nwl">span gaya="warna :#0000ff;font-size:14px;width:auto;height:auto;float:none;">tambah span>a>span>Entri == benar) {   
    33.                 // Tambah Sejarah Entri menggunakan pushState   
    34.                 history.pushState(null, null, url);   
    35.             }   
    36.                  
    37.         });   
    38.     }   
    39. skrip>  
      总结(ps:喜欢这两个字~~~^_^~~~)

      HTML 5中的History API 对Web应用有着很大的影响。为了更容易的创建有效率的、对应率的、对很大的影响。为了更容易的创建有效率的、对应率的、对应率的、对应率的、对应率的、对应率的、对应家家移除了对散列值的依赖。


Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Apa yang dirujuk oleh H5? Meneroka konteksApa yang dirujuk oleh H5? Meneroka konteksApr 12, 2025 am 12:03 AM

H5referstohtml5, apivotaltechnologyinwebdevelopment.1) html5introducesnewelementsandapisforrich, dynamicwebapplications.2) itsupp ortsmultimediawithoutplugins, enhancusexperienceaceacrossdevices.3) SemantikelementsImproveContentstructureandseo.4) H5'srespo

H5: Alat, Rangka Kerja, dan Amalan TerbaikH5: Alat, Rangka Kerja, dan Amalan TerbaikApr 11, 2025 am 12:11 AM

Alat dan kerangka yang perlu dikuasai dalam pembangunan H5 termasuk Vue.js, React dan Webpack. 1.vue.js sesuai untuk membina antara muka pengguna dan menyokong pembangunan komponen. 2. Leact mengoptimumkan rendering halaman melalui DOM maya, sesuai untuk aplikasi yang kompleks. 3.WebPack digunakan untuk pembungkusan modul dan mengoptimumkan beban sumber.

Warisan HTML5: Memahami H5 pada masa kiniWarisan HTML5: Memahami H5 pada masa kiniApr 10, 2025 am 09:28 AM

Html5hassignificlylylectransformedwebdevelopmentbyintroducingsemanticelements, enhancingmultimediasupport, andimprovingperformance.1) itmadewebebsitesmoreaccessibleandseo-friendlywithSemhyViVeShive, dan

Kod H5: Kebolehcapaian dan HTML SemantikKod H5: Kebolehcapaian dan HTML SemantikApr 09, 2025 am 12:05 AM

H5 meningkatkan kebolehaksesan laman web dan kesan SEO melalui unsur -unsur semantik dan atribut ARIA. 1. Gunakan, dan lain -lain untuk mengatur struktur kandungan dan meningkatkan SEO. 2. Atribut Aria seperti ARIA-Label meningkatkan kebolehcapaian, dan pengguna teknologi bantuan boleh menggunakan laman web dengan lancar.

Adakah H5 sama dengan HTML5?Adakah H5 sama dengan HTML5?Apr 08, 2025 am 12:16 AM

"H5" dan "HTML5" adalah sama dalam kebanyakan kes, tetapi mereka mungkin mempunyai makna yang berbeza dalam senario tertentu tertentu. 1. "HTML5" adalah standard yang ditentukan oleh W3C yang mengandungi tag dan API baru. 2. "H5" biasanya merupakan singkatan HTML5, tetapi dalam pembangunan mudah alih, ia boleh merujuk kepada rangka kerja berdasarkan HTML5. Memahami perbezaan ini membantu menggunakan istilah ini dengan tepat dalam projek anda.

Apakah fungsi H5?Apakah fungsi H5?Apr 07, 2025 am 12:10 AM

H5, atau HTML5, adalah versi kelima HTML. Ia menyediakan pemaju dengan set alat yang lebih kuat, menjadikannya lebih mudah untuk membuat aplikasi web yang kompleks. Fungsi teras H5 termasuk: 1) unsur -unsur yang membolehkan lukisan grafik dan animasi di laman web; 2) tag semantik seperti, dan lain -lain untuk menjadikan struktur laman web jelas dan kondusif untuk pengoptimuman SEO; 3) API baru seperti perkhidmatan berasaskan lokasi GeolocationPi; 4) Keserasian silang penyemak imbas perlu dipastikan melalui ujian keserasian dan perpustakaan polyfill.

Cara melakukan pautan h5Cara melakukan pautan h5Apr 06, 2025 pm 12:39 PM

Bagaimana untuk membuat pautan H5? Tentukan sasaran pautan: Dapatkan URL halaman atau aplikasi H5. Buat HTML Anchors: Gunakan & lt; a & gt; Tag untuk membuat sauh dan tentukan URL sasaran pautan. Tetapkan sifat pautan (pilihan): Tetapkan sasaran, tajuk, dan sifat onClick seperti yang diperlukan. Tambah ke laman web: Tambah kod utama HTML ke laman web di mana anda mahu pautan muncul.

Cara menyelesaikan masalah keserasian H5Cara menyelesaikan masalah keserasian H5Apr 06, 2025 pm 12:36 PM

Penyelesaian kepada isu keserasian H5 termasuk: menggunakan reka bentuk responsif yang membolehkan laman web menyesuaikan susun atur mengikut saiz skrin. Gunakan alat ujian silang penyemak imbas untuk menguji keserasian sebelum dilepaskan. Gunakan Polyfill untuk memberi sokongan untuk API baru untuk pelayar yang lebih tua. Ikuti piawaian web dan gunakan kod yang berkesan dan amalan terbaik. Gunakan preprocessors CSS untuk memudahkan kod CSS dan meningkatkan kebolehbacaan. Mengoptimumkan imej, mengurangkan saiz laman web dan mempercepatkan pemuatan. Dayakan HTTPS untuk memastikan keselamatan laman web.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini