- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我一直在自学react-router
, 现在我想知道应该使用哪种方法转到另一个页面。
根据 this post (Programmatically navigate using react router) , 你可以通过 this.props.history.push('/some/path')
转到另一个页面.
不过,老实说,我不太确定 window.location.href
之间的区别。和 history.pushState
.
据我了解,window.location.href = "/blah/blah";
通过进行刷新浏览器的新 HTTP 调用将您带到另一个页面。
另一方面,什么history.pushState
(和 this.props.history.push('/some/path')
)的作用是插入状态。这显然会更改 HTTP 引荐来源网址并因此更新 XMLHttpRequest
.
这是来自 mozila's documentation... 的摘录
Using history.pushState() changes the referrer that gets used in the HTTP header for XMLHttpRequest objects created after you change the state.
对我来说,听起来这两种方法都进行了新的 HTTP 调用。如果是,有什么区别?
任何建议将不胜感激。
附言
我认为开发人员在决定如何转到另一个页面之前需要考虑是否有必要从服务器获取数据。
如果您需要从服务器检索数据,window.location.href
会没关系,因为您将进行新的 HTTP 调用。但是,如果您使用 <HashRouter>
,或者您想避免为了速度而刷新页面,什么是好的方法?
这个问题促使我发表这篇文章。
最佳答案
history.pushstate
不进行新的 HTTP 调用(来自您引用的 mozilla 文档):
Note that the browser won't attempt to load this URL after a call to pushState(), but it might attempt to load the URL later, for instance after the user restarts the browser.
window.location.href = "url"
将浏览器导航到新位置,因此它确实发出新的 http 请求。 注意:当您将新 url 指定为散列片段时会出现异常(exception)情况。然后窗口就滚动到相应的 anchor
您可以在打开“网络”选项卡的情况下从 devTools 控制台检查是否正在运行它们。请务必启用“保留日志”选项。网络选项卡列出了所有新的 http 请求。
关于javascript - window.location.href 与 history.pushState - 使用哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47583856/
我正在尝试通过 node.js 中的 puppeteer 抓取数据 目前,我正在寻找一个脚本,用于抓取 well.ca 某个部分中的所有数据 现在,这是我试图通过 node.js 实现的方法/逻辑 1
href=""、href="#" 和 href="javascript:void(0)" 之间有什么区别? 它们有哪些不同的用途,什么时候一个比另一个更好? 最佳答案 href=""将重新加载当前页面
这是html代码: Delivery Schedule Route Abstract Report 我有 href 值。使用 href 值,我应该找到 anchor 标记并使用 jQuery
我不确定是不是因为我使用的是 Wordpress 但 this.href 没有返回包含它们的项目的 href(例如在“联系人”上它返回 http://www.domain.net/undefined反
这个问题在这里已经有了答案: Is there a "previous sibling" selector? (33 个答案) 关闭 8 年前。
这个问题在这里已经有了答案: Are you allowed to nest a link inside of a link? (9 个回答) 关闭 6 年前。 我有一个可点击的面板,其中有一个工具
我的 css 如下所示 ul.sometclass li a { display:inline-block; } 我的 html 看起来像 outer test
我没看明白这段代码是什么意思? a[href*=#]:not([href=#]) 谢谢! 最佳答案 简单地: a[href*=#] 获取 href 中包含 # 的所有 anchor (a)。 但是有:
document.getElementById("IDOFELEMENT"); 将其转换为链接的正确方法是什么? 我可以写吗 document.getElementById("IDOFELEME
所以我在我的 Next JS 应用程序中遇到了这个奇怪的问题,我导入了谷歌字体,如下所示 在我的浏览器中显示的不是 href,而是 data-href="...",所以问题是谷歌无法将此识别为链接
我想获取所选选项的 href 值,以便我现在可以转到使用按钮选择的链接。 这是我的代码
我正在尝试获取我的一个链接的 href 并将其克隆/复制到另一个链接的 href 这是我正在尝试的 var link = $('.topbook'); var link2 =
我基本上是试图从一个链接获取href,然后将其填充到另一个链接中: HTML: Link to thing Link to duplicate 脚本: $('.main-link').attr('hr
我使用的 CSS 工具提示必须包含在“a href”中才能工作。 iPad [add_to_cart_anchor item="ipad"]purchase the iPad[/add_to_c
我有一个以前是纯文本的电子邮件正文,但现在我把它变成了 HTML。电子邮件是使用多种方法生成的,但没有一种方法易于转换。 我有的是: Some content emailaddress@somethi
我正在尝试从网页中抓取数据,然后通过提取下一页的 href 来转到下一页。 但是,在这种情况下,包含下一页的 href 的标签是 href='#next'。使用 Chrome 检查此元素后,当我将鼠标
在我的 html 页面中,我看到一个链接,其“查看源代码”代码如下: 当我将鼠标悬停在链接上并单击它时,我看到了一个有效链接。但我无法找到生成此 URL 的位置和方式。我发现类 a.view 是在其
看完这篇文章net.tutsplus.com/tutorials/javascript-ajax/14-helpful-jquery-tricks-notes-and-best-practices/我
我想用 SvelteKit 构建一个 Web 应用程序,其中一页列出所有项目(带有潜在的搜索查询参数),然后每个单独的项目一页。如果我必须使用后端生成的所有内容以老式方式构建它,我的路径将是 /ite
此 js 搜索包含 page=fleet 的 href其中: var links = document.querySelectorAll('a[href*="page=fleet"]'); var h
我是一名优秀的程序员,十分优秀!