Should I load an entire html page with AJAX?

前端 未结 4 426
不知归路
不知归路 2020-12-16 00:48

My designer thought it was a good idea to create a transition between different pages. Essentially only the content part will reload (header and footer stay intact), and onl

4条回答
  •  無奈伤痛
    2020-12-16 01:15

    Short answer: I would not recommend loading an entire page in this manner.

    Long answer: Not recommended. whilst possible, this is not really the intent of XHR/Ajax. Essentially what you're doing is replicating the native behaviour of the browser. Some of the problems you'll encounter:

    1. Support for the Back/Forward button. You'll need a URI # scheme to solve.
    2. The Browser must parse the entire page through AJAX. This'll slow things down. E.g. if you load a block of HTML into the browser, then replace the DOM with it, only then will any scripts, CSS or images contained therein begin downloading.
    3. Memory - the browser's not changing pages. Over time (depending on the browser), I'd expect the memory usage to increase.
    4. Accessibility. Screen readers will need to be notified whenever the page content is updated. Might not be a concern for you but worth mentioning.
    5. Caching. Browser would not know which page to cache (beyond the initial load).
    6. Separation of concerns - your View is essentially broken into server-side pieces to render the page's content along with the static HTML for the page framework and lastly the JS to combined the server piece with the browser piece. This'll make maintenance over time problematic and complex.
    7. Integration with other components - you're already seeing problems with Google Analytics. You may encounter issues with other components related to the timing of when the DOM is constructed.

    Whether it's worth it for the page transition effect is your call but I hope I've answered your question.

提交回复
热议问题