一个关于window.location.href=window.location.href的问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个关于window.location.href=window.location.href的问题?相关的知识,希望对你有一定的参考价值。

在使用window.location.href=window.location.href刷洗后,能够将数据提交到数据库中,在前台页面显示不了,当手动刷新时,会出现改变的结果,但是在后台数据库中,出现两条记录。请问各位大侠这是什么原因?改如何改?

浏览器使用的缓存里的数据.而且不是所有浏览器都会响应window.location.href=window.location.href, 有时侯地址没有发生变化,浏览器并不会产生HTTP请求.要刷新网页,可以用
window.location.reload(true);追问

你说的window.location.reload我也试过,如果我用window.location.reload时,能够刷新,但是数据写不到数据库中,不知道该怎么办?

追答

同样都是产生一次GET请求,不太可能出现你说的情况吧.
那你可以试试
window.location.href=window.location.href+(window.location.href.indexOf('?')>=0?'&':'?')+'rnd='+Math.random();

追问

我的QQ是825090177,能不能加QQ聊啊?

追答

不好意思,不加Q,已经Hi你了.

参考技术A window.location.href和location.href是一样的,就像window.alert()和alert()一样。window.document.location.href这个就不知道了,开发推荐这样写window.location.href

window.open 目标_self v window.location.href?

【中文标题】window.open 目标_self v window.location.href?【英文标题】:window.open target _self v window.location.href? 【发布时间】:2011-06-16 09:06:31 【问题描述】:

我需要使用 JavaScript 重定向用户。哪个是首选方法?

window.open("webpage.htm", "_self");

window.location.href = "webpage.htm";

【问题讨论】:

第一个不是打开一个新窗口吗?实际上我不确定。 @Gunner,不,它会在同一个窗口中打开它,因此"_self" 那里... 如果将_self替换为_blank,则会在新窗口中打开 【参考方案1】:
window.location.href = "webpage.htm";

【讨论】:

【参考方案2】:

绝对首选第二种方法,因为您没有另一个函数调用的开销:

window.location.href = "webpage.htm";

【讨论】:

Jacob 提供了比 Or W. Frédéric Hamidi 更好的解释,也添加了答案,我想将答案授予你们两个,但看来我必须选择一个。既然雅各布首先回答,那么答案就交给你了。 值得注意的是,在使用这种方法时,使用../../folder/page.aspx?Source=abcd之类的链接是行不通的。我需要使用其他方法来使我的链接工作,即使那样也不能使用“_self”。 函数调用的开销?函数调用肯定是有代价的,但我不确定这是否有任何相关性,我曾经期望现在的函数调用与所有实际目的的属性访问一样有效。在 JVM 上是这样,随着 V8 的性能飞跃,我在这里期望相同。我这里的分析有问题吗? 如果浏览器通过设置它而采取动作,显然这不是一个简单的属性。此外,与浏览器实际加载页面所做的任何事情相比,调用函数的开销是九牛一毛。所以我不买这个论点。【参考方案3】:

正如其他人所说,通常首选第二种方法。

然而,两个代码 sn-ps 并不完全等价:第一个实际上将window.opener 设置为窗口对象本身,而第二个将保持原样,至少在 Firefox 下是这样。

【讨论】:

【参考方案4】:

您可以省略window,而只使用location.href。例如:

location.href = 'http://google.im/';

【讨论】:

【参考方案5】:

希望通过阅读本文可以拯救其他人。

我们在使用基于 webkit 的浏览器时遇到了问题:

window.open("webpage.htm", "_self");

如果我们有太多的 DOM 节点,浏览器就会死机。当我们将代码切换为遵循以下公认答案时:

location.href = "webpage.html";

一切都很好。我们花了一段时间才弄清楚导致问题的原因,因为不清楚是什么导致我们的页面定期无法加载。

【讨论】:

我自己也遇到过这个。非常惊讶,一开始无法弄清楚问题所在。 airbnb linter 不喜欢 location.herf。必须在开头提及窗口。【参考方案6】:

请使用这个

window.open("url","_self"); 
第一个参数“url”是要打开哪个页面的完整路径。 第二个参数“_self”,用于在同一选项卡中打开页面。您想在另一个标签页中打开页面,请使用“_blank”。

【讨论】:

这个答案与建议的答案直接相反,可能导致浏览器崩溃。请参阅我在此线程中的回复。此外,这并没有说明为什么人们会选择使用这种方法,它只是说要使用它。

以上是关于一个关于window.location.href=window.location.href的问题?的主要内容,如果未能解决你的问题,请参考以下文章

关于 Safari 浏览器不支持 location [ window.location.href window.open()] 跳转问题的解决方案

关于js中"window.location.href""location.href""parent.location.href"&qu

关于微信端不支持window.location.reload()

window.location和window.location.href的区别

window.location.href=window.location.href 和 window.location.reload() 的区别

window.location.href下载??