google如何在Gmail中添加和删除网址中的参数而不进行回发。 我在这里指的是他们保存你的草稿的方式,一旦你点击撰写,你可以看到添加“?compose = new”参数,一旦你开始编写,他们会给它一个ID。
如何在没有回发的情况下操作URL?我在考虑使用`history.pushState({},document.title,“?querystring = 1”)
但我很想知道是否有更好的方式与移动浏览器兼容
Thanks`
答案 0 :(得分:1)
Gmail使用网址中的哈希来表示不同的文件夹。举个例子,我打开收件箱或重要文件夹时的URL如下:
https://mail.google.com/mail/u/0/#inbox
https://mail.google.com/mail/u/0/#imp
请注意,inbox
和imp
后跟哈希。 URL中哈希的含义是它链接到页面的一部分。因此,每次#
更改后的网址部分,浏览器都会识别该网址只是指向同一网页中的元素 - 不是指向其他网页。因此,不会发出服务器请求。
您可以查看这些答案,以了解有关如何使用javascript在页面中导航的更多信息:
https://stackoverflow.com/a/2835151/5894241
https://stackoverflow.com/a/3163635/5894241
借助Angular等现代javascript框架,网站通常会利用此功能制作单页应用程序(SPA)。这些框架将使用哈希值识别要加载的页面,然后使用AJAX在幕后加载该页面的内容,并在没有回发的情况下显示它。
你可以在这里看到Angular如何做到这一点:https://www.w3schools.com/angular/angular_routing.asp