Rumah  >  Soal Jawab  >  teks badan

javascript - Masalah dalam program lanjutan js

Apabila saya melihat halaman 492 Pengaturcaraan JavaScript Lanjutan (Edisi Ketiga), saya mempunyai soalan

Apabila saya menggunakan URL "palsu" dan menyegarkannya, ralat 404 akan dikembalikan Melainkan saya mempunyai pautan sebenar seperti ini pada pelayan web, pengguna semestinya perlu memuat semula halaman tersebut yang sebenar? Fail itu sepadan dengan pautan sebenar. Lalu apakah kegunaan pushState()?

黄舟黄舟2663 hari yang lalu949

membalas semua(4)saya akan balas

  • 淡淡烟草味

    淡淡烟草味2017-07-05 11:09:56

    pushState Digunakan terutamanya dalam aplikasi SPA, untuk menjawab soalan:

    404 muncul. Ini kerana tiada # dalam URL dalam mod PushState, penyemak imbas sebenarnya akan memulakan permintaan kepada pelayan dan kami tidak mempunyai sumber yang sepadan dengan laluan ini pada pelayan.

    Tetapi tidak perlu mempunyai pautan sebenar pada pelayan (ia akan memenatkan orang hingga mati), anda hanya perlu menukar konfigurasi pelayan supaya halaman yang tidak wujud (404) mengubah hala ke laluan akar.

    Ambil Tomcat sebagai contoh Konfigurasinya sangat mudah. ​​Cuma tambahkan konfigurasi berikut pada web.xml projek anda:

        <error-page>
            <error-code>404</error-code>
            <location>/</location>
        </error-page>

    Dengan cara ini, Tomcat akan mengubah hala semua laluan di mana sumber tidak dapat ditemui ke laluan akar, supaya rangka kerja bahagian hadapan anda, sama ada sudut/vue/react/tulang belakang, boleh memproses URL yang diminta sendiri di bahagian hadapan -akhir.

    Untuk jenis pelayan lain, seperti nginx/apache/IIS, sila rujuk dokumen ini: https://github.com/angular-ui...

    Sumber: https://my.oschina.net/mumu/b...

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-05 11:09:56

    Menekan muat semula akan menghantar permintaan kepada pelayan dengan URL penyemak imbas semasa.

    Sebagai contoh, jika anda menukar alamat semasa kepada boomshaklaka.com/boom melalui pushState()
    Selepas mengklik muat semula, pelayan akan mengembalikan 404 apabila ia menerima alamat ini dan mendapati ia tidak wujud.

    balas
    0
  • 漂亮男人

    漂亮男人2017-07-05 11:09:56

    Pertama sekali, anda perlu memahami perbezaan antara penghalaan hadapan dan penghalaan belakang.

    Dalam kes hanya penghalaan bahagian belakang, semua halaman yang anda minta dikembalikan kepada anda oleh bahagian belakang Pada masa ini, semua penghalaan dikawal oleh bahagian belakang.

    Tetapi kadangkala kami tidak mahu memuat semula halaman, tetapi url itu juga mahu ia berubah, seperti aplikasi SPA. Pada masa ini kami memerlukan penghalaan bahagian hadapan, dan pushState ini memainkan peranan ini di sini.

    balas
    0
  • 某草草

    某草草2017-07-05 11:09:56

    Pertama sekali, saya masih biasa memproses penghalaan di latar belakang saya akan menggunakan penghalaan latar belakang sebagai contoh:

    Pertama sekali, url boleh ditakrifkan sewenang-wenangnya Bagi fail mana yang ingin anda kaitkan, terpulang kepada anda

    <action name="index">
        <result>xxx/index.jsp</result>
    </action>
    <action name="login">
        <result>xxx/index.jsp</result>
    </action>

    Tindakan yang berbeza boleh menghala ke halaman yang sama, jadi tapak web anda mesti mempunyai sekurang-kurangnya satu halaman

    Kedua:

    Dalam fail HTML, kaedah history.pushState() menambah keadaan pada sejarah penyemak imbas.

    Lebih banyak digunakan untuk menetapkan titik jangkar:

     window.location = "#foo";

    Bagi 404 yang disebut dalam artikel itu, ia masih kerana terdapat masalah dengan arah laluan dan sumber tidak ditemui.

    balas
    0
  • Batalbalas