小编lgc*_*stc的帖子

检测js/css文件加载失败

在我们的SAAS Web应用程序中,我们使用了大量的js和css文件(总共大约80个),并且在我们的应用程序可以正常运行之前,必须加载一些文件,尤其是其他依赖于jQuery的文件.

在理想的网络环境中,这不会带来任何问题,因为每次都会加载所有资源.但是在生产环境中,我们发现当网络很差时,某些js/css文件没有正确加载并不罕见.发生这种情况时,浏览器会在控制台中记录js/css加载超时错误,并且应用程序似乎正在运行.然后,当应用程序尝试调用未能加载的js文件中定义的某些函数时,会抛出一些未定义的异常并将其记录在控制台中,并且应用程序停止运行,这会使用户大部分时间感到困惑.请注意,我不是在谈论404加载错误,这些错误是编程/部署错误,只是由于网络连接不良导致的超时错误.

我们认为这种体验不是最佳的.我们想检查在应用运行之前是否加载了所有资源.如果有任何问题,我们会警告用户,以便他可以选择重新加载应用程序,这可以减少很多混乱,我们认为.

有些人可能会建议连接文件并将数字减少到一对,是的,可以减少出现超时错误的可能性.但仍然无法解决问题 - 我们仍然可能在加载几个文件时出现超时错误.

经过对SO的一些研究,我发现了以下建议:
1使用window.error来捕获未捕获的异常,包括未定义的异常;
2在每个js/css文件中放置一些特殊的变量/状态,并检测该变量/状态是否存在;
3.使用onload事件处理程序注册加载事件已成功完成,然后调用setTimeout查看是否有任何事件尚未注册;

AFAICS,它们有一些缺点:
1是一种惰性检测技术,即我们不知道在抛出异常之前脚本没有正确加载;
2凌乱,在某些情况下需要修改第三方插件;
3据说IE在某些情况下触发onload事件有一些问题;

那么检测这种js/css文件加载失败的最佳跨浏览器机制是什么?

javascript css

9
推荐指数
2
解决办法
5128
查看次数

如何从Javascript中的电子邮件地址获取域?

我想用 Javascript 从电子邮件地址获取域部分。从电子邮件中提取域很容易,例如split:“joe@example.com”,即example.com.

但是,电子邮件也以“joe@subdomain1.example.com.uk”之类的形式出现,其中的域是example.com.uk,而不是subdomain1.example.com.uk。这里的问题是subdomain1可以错误地将其视为域的一部分。

我如何可靠地做到这一点?

javascript

8
推荐指数
1
解决办法
1万
查看次数

删除javascript对象中的嵌套属性

我有一个像这样的JS对象:

var tenants = {
    'first': {
        'name': 'first',
        'expired': 1
    },
    'second': {
        'name': 'second'
    }
}
Run Code Online (Sandbox Code Playgroud)

我想删除"第一个"租户的"过期"属性,我应该这样做吗?

delete tenants['first']['expired'];
Run Code Online (Sandbox Code Playgroud)

注意:这个问题比问题更具体:如何从JavaScript对象中删除属性?,我的问题集中在'嵌套'部分.

javascript

7
推荐指数
4
解决办法
1万
查看次数

Objective-C和Swift ABI

我知道在Swift的不同版本之间仍然存在一些ABI(应用程序二进制接口)问题,并且它可能导致使用一个版本的Swift构建的框架不能被另一个版本的Swift构建的应用程序使用.

但我不确定Objective-C和Swift是否存在这样的问题.也就是说,在ABI上下文中,使用Swift构建的框架可以被任何版本的Objective-C使用吗?

objective-c swift

6
推荐指数
0
解决办法
283
查看次数

在iOS 10中实现"从锁定屏幕回复通知"

我们有一个消息传递应用程序,旨在当手机从远程用户锁定时接收消息时显示通知,并让本地用户从锁定屏幕输入文本,并发送消息.我该如何实现?iOS 10中的UNUserNotificationCenter是否可行?

谢谢.

ios

6
推荐指数
1
解决办法
2254
查看次数

子光标宽度垂直条在Safari输入/ textarea中始终可见

在Safari 9.0.3,Mac OS X El Capitan中,在我的一个页面上,所有输入和textarea元素在聚焦时都表现出这种行为:元素左侧始终显示一个垂直条,宽度比输入的更薄光标.

当元素聚焦时,光标闪烁,即它开启和关闭.所以我为这两个截取了2个截图:

当光标打开时: 在此输入图像描述

当光标关闭时: 在此输入图像描述

正如您在光标关闭的第二张图像中所看到的那样,那里仍然有一个垂直条,当元素聚焦时它永远不会消失.

我试图通过在浏览器中逐个切换规则来追踪导致问题的CSS规则.事实证明,它是font-size.但问题是:只有当字体大小设置为特定值(在我的情况下为14px)时才会出现此问题.将字体大小设置为其他值会导致条形图消失.

这在任何其他主流浏览器中都不会发生.

有没有人见过这个?这是一个Safari bug吗?

html css safari cross-browser input-field

5
推荐指数
1
解决办法
263
查看次数

在客户端检测Socket.IO消息传递错误

我们需要更新客户端UI以指示消息无法传递.当消息无法提供时,如何让Socket.IO JS客户端直接调用自定义回调?例如,类似于:

socket.emit("event", data).onError(myCallback);
Run Code Online (Sandbox Code Playgroud)

我知道Socket.IO提供了Ack机制来确认交付成功.因此,如果在一定时间后未调用ack,则可以设置具有调用故障回调的处理程序的计时器.但这似乎不是最好的方法.

还有Socket.IO提供的错误事件,但它没有提供有关哪个发射导致错误的信息.

node.js socket.io

5
推荐指数
1
解决办法
184
查看次数

UIButton 边框填充

这看起来是一个很简单的问题,但我似乎无法在网上找到解决方案。我使用 anUIButton的图层为其制作边框。和边界显示。问题是边框的paddings(top/right/bottom/left,显然这个词来自CSS世界)太小了,我想增加它们。我怎么做?

这是我的代码:

myButton.layer.cornerRadius = 10;
myButton.layer.borderWidth = 2;
myButton.layer.masksToBounds = YES;
Run Code Online (Sandbox Code Playgroud)

按钮看起来像上面一样。 带有紧密填充的按钮边框

objective-c uikit

1
推荐指数
1
解决办法
1397
查看次数

node.js中的最大整数

很难相信-但是我找不到有关Google或SO中node.js允许的最大整数的信息。关于浏览器Javascript中最大整数的文章很多,但我只是想知道node.js中的事情可能有所不同。

任何人都可以给一些指针吗?谢谢!

javascript node.js

1
推荐指数
1
解决办法
1073
查看次数