- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的网络应用程序中,我将一些用户特定数据注入(inject)到 html 页面中。
在页面源代码中看起来像这样
<body>
<script>
var userData = {};
window.GLOBAL = {
userData: userData
};
userData.user = {'user_hash': 12478999584505 };
</script>
<script src="/static/scripts/myapp.js"> </script>
在 myapp.js
中,我检索 user_hash
并调用初始化函数:
init(window.userData.user.user_hash);
一些用户虚假地遇到此问题:
Cannot read property 'user_hash' of undefined
事实证明,我很难查明问题的确切原因。无论是在生产环境还是开发环境中,这个错误都不会发生在我身上。服务器端也没有错误表明 user_hash
生成失败。我尝试通过开发控制台等在 Chrome 中限制网络速度来重现此错误,但我还无法触发此错误。
在用户方面,平台多种多样,从移动设备(可能运行最新版本的 iOS 或 andriod)到桌面设备,以及不同的浏览器(chrome、firefox 或 safari)。我的观点是,没有明确的模式可以将其固定到特定的平台或浏览器版本。
我推测,如果在 window.GLOBAL
正确初始化之前加载并执行 /static/scripts/myapp.js
,则会发生异常,该异常将被触发。
我正在考虑将 defer
关键字添加到 myapp.js
脚本标记中,based on this answer .
我的问题是:
1) 我当前的 HTML 标记有什么问题吗? (两个脚本标签)
2)我的假设基本上是这两个脚本标签之间可能存在一些竞争条件。它站得住吗?
3) 如果问题 2 的答案是肯定的,向第二个脚本标记添加 defer
属性是否可以解决此问题?
4) 如果问题 3 的答案是否定的,我还能尝试什么?
最佳答案
1) Is there any issue with my current HTML markup? (the two script tags)
不,HTML 标记没有问题。
2) My hypothesis is basically that these two script tags may have some racing condition between them. Does it stand?
我没有完全理解这个问题。也许您应该在此处显示您的 myapp 代码
3) Can be adding defer attribute to the second script tag potentially fix this issue if answer to question 2 is yes?
没有。 JavaScript 始终是同步和单线程的。如果您在页面上执行 JavaScript 代码块,则当前不会执行该页面上的其他 JavaScript。 JavaScript 仅在可以进行 Ajax 调用等意义上才是异步的。 Defer 指示脚本标记的内容在页面加载之前不执行。
4) If the answer to question 3 is no, what else I can try?
您不需要在此处使用 GLOBAL,因为当您在脚本顶部使用 var 初始化变量时,它可能会自动在全局范围内考虑。 JavaScript 有两个作用域:全局作用域和局部作用域。在函数定义之外声明的变量是全局变量,它的值可以在整个程序中访问和修改。在函数定义内声明的变量是局部变量,是窗口对象表示的第二个变量。浏览器的窗口。所有全局 JavaScript 对象、函数和变量都会自动成为 window 对象的成员。
下面的代码可能会满足您的要求
var userData = {
userData: userData
};
userData.user = {'user_hash': 12478999584505 };
console.log(userData.user.user_hash);
这也是工作 fiddle 的链接:https://jsfiddle.net/dipakchavda2912/eohb0npr/
关于javascript - 我可以使用关键字 "Cannot read property ' 解决这个 'defer' xxxx' of undefined"问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47128543/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我想格式化 UITextField用于输入信用卡号,使其只允许输入数字并自动插入空格,以便数字格式如下: XXXX XXXX XXXX XXXX 我该怎么做? 最佳答案 如果您使用 Swift,请阅读
我正在尝试使用以下代码创建信用卡类型文本,但无法做到这一点,有什么办法吗? func textField(textField: UITextField, shouldChangeCharactersI
我有一个 16 个字符的字符串,它是这样的: 1234567891234567 我需要能够格式化字符串,因为它会出现在系统中,即 XXXX-XXXX-XXXX-4567 注意上面显示的 4567 位数
List list = fromStudentTable(); Map map = new HashMap(); for (Student i : list) { map.put(i.getD
我需要将这六个字段保存在同一列中,但不在同一行和同一单元格中。每个字段都有默认的 GUID。所以我决定将默认的 GUID 放在一个列表中,将字段放在一个列表中,并在我们想要的地方调用该特定列表的对象。
我刚刚开始使用 stackify 的 Retrace 来监控我的应用程序,并且看到了数千个错误,这些错误是: System.FormatException: Guid should contain 3
我使用的是演练:第 1 部分 - 创建基本项目系统,完全按照网站 http://msdn.microsoft.com/en-us/library/cc512961.aspx 上的说明使用以及与从 ht
我正在使用 antd 表单项,我尝试了以下模式,但它不起作用。 rules: [{ pattern: new RegExp("^d{4}-d{2}-d{4}$"), messag
当我的数据库离线时,我没有遇到这个错误。我刚刚使用 db4free.net 使我的数据库联机。 每次登录都会出现此错误。有人能指出哪里出了问题吗? private void btnLogIn_Clic
当我的数据库离线时,我没有遇到这个错误。我刚刚使用 db4free.net 使我的数据库联机。 每次登录都会出现此错误。有人能指出哪里出了问题吗? private void btnLogIn_Clic
我有以下代码(如果我保留警告,它可以编译并正常工作,我还没有使用 global::hack 对其进行测试): namespace NotifierService.Models {} namespace
我迷路了:我正在尝试让 MySQL 在我的一个小型控制台程序中工作;我有一个在本地主机上运行的 MySQL 服务器,我可以通过 MySQL Workbench 8.0 CE 访问它。那里没问题。我的程
当我尝试构建我的应用程序时,链接器给出大量错误,如下所示: modlauch.obj : error LNK2005: "public: virtual __thiscall lolbutton::~
我对 Excel VBA 还很陌生。到目前为止,我已经在这个网站上阅读并学到了很多东西,但还没有找到解决我的问题的方法。 作为宏的一部分,我有以下代码: With Worksheets("Oracle
如上所述。我举一个例子,假设所有的测试值都小于1但大于0。 0.12(精度:3,小数位数:2) 0.345(精度:4,小数位数:3) 0.6789(精度:5,小数位数:4) 如何在不对比例和精度值进行
我收到四个“在 com.rusapp.batch.trans.OLFMWriter 类中找不到属性“xxxx”的 setter ”。该类中的第五个 bean,inputQueue,没有错误。其余的在下
我在 javascript 中有 2 个字符串,其中包含代表文件版本的数字。 即 var str1 = "11.11.1111.1111" var str2 = "11.22.3333.5555" 如
package com.test.nativeapp; import android.support.v7.app.ActionBarActivity; import android.os.Bundl
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: A comprehensive regex for phone number validation 什么是正
我是一名优秀的程序员,十分优秀!