【发布时间】:2013-02-04 14:42:13
【问题描述】:
我将从问题开始:
- 我正在更改对象文字的内容。 (更改属性值)
- Firebug 控制台(第一次单击)显示正确 值。
- 但一段时间后,它会停留在特定值上并停止更改。
(注意:对象的stringify 表示 - 始终显示正确的值)
以下是详细信息:
我在
textbox中选择了一个street(它应该在对象中设置StreetText值)我查看
console(宽线)并按下最后一行,查看街头文字。
一开始还可以。在第二次尝试中,我选择了另一条街道后,它仍然保持旧值。
但是,当我(在对象上)按刷新时,它会显示正确的街道名称。
这是怎么回事?
我的对象是一个普通的对象字面量:
var obj =
{
getData: function ()
{
obj.CountryId = $(".ddlCountry").val() || "";
obj.CountryText = $(".ddlCountry :selected").text() || "";
obj.StateId = $(".ddlState:visible").val() || "";
obj.StateText = $(".ddlState:visible :selected").text() || "";
obj.CityId = $(".hfDataIdCity").val() || "";
obj.CityText = $(".hfDataTextCity").val() || "";
obj.StreetId = $(".hfDataIdStreet").val() || "";
obj.StreetText = $(".hfDataTextStreet").val() || "";
}
}
控制台上的显示是通过单击按钮进行的:
obj.getData();
console.log(obj);
为什么我没有看到正确的值? (仅在刷新后......)
附言:
ff: 14.0.1
FB:1.10.6
缓存关闭
【问题讨论】:
-
如果您使用任何 jQuery 的 AJAX 方法,您可能需要将
cache选项指定为false。我猜浏览器只是缓存旧请求以节省带宽。 -
发布您提出请求时使用的代码会很有帮助。
-
@zzzzBov 很抱歉问这个问题,但它有什么关系?我确实看到了 STRINGIFY 对象的正确值。这意味着 AJAX 已经完成并更新了属性值。 (我在做ajax时确实使用了cache:false)。如果 ajax async 或 cache 有问题,STRINGIFY 也会显示旧值。
-
所以这可能是 Firebug 问题。既然您已经使用
.stringify()证明您的程序代码是正确的,那么我想您会想要使用不同的开发人员工具,或为 Firebug 提交错误报告,或两者兼而有之。 -
@RoyiNamir,虽然很高兴看到你聪明的动画,但它不如看到实际发出请求的代码有用。如果您在处理 AJAX 请求的方式上出现错误,您可能会丢弃新值以支持旧值。
标签: javascript jquery firefox firebug