小编nic*_*ckf的帖子

存储对DOM元素的引用

在我写的一个特定脚本中,我有许多链接到某些DOM元素的对象.假设每个元素都有唯一的id,每个对象应该只保留元素的id(并且每次都使用document.getElementById),还是将元素存储在属性中?

这是我的意思的简化示例:

function myThing(elId) {
    this.elId = elId;
}
myThing.prototype.getElValue = function() {
    return document.getElementById(this.elId).nodeValue;
};

// -- vs -- //

function myThing(elId) {
    this.el = document.getElementById(elId);
}
mything.prototype.getElValue = function() {
    return this.el.nodeValue;
};
Run Code Online (Sandbox Code Playgroud)

它有什么不同吗?我应该知道有任何性能问题吗?

javascript dom reference

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

不推荐使用jQuery.browser,但是如何使用.support?

在我的网页上,我有这个CSS:

tr:hover {
    background-color: #f0f;
}
Run Code Online (Sandbox Code Playgroud)

除了好的旧IE之外,它在所有浏览器中都能很好地工作.我知道我可以写一些jQuery来添加和删除鼠标上/下的一个类,但我不想让所有其他支持:hover正确的浏览器出现问题- 所以我只想应用这个浏览器的JS行为本身不支持纯CSS解决方案.

当然,我们都知道这$.browser已被弃用了,而且我们都知道浏览器嗅探是一件坏事,SO上的所有其他问题都有大量的答案,就像"你不应该检查浏览器,检查为特征 ",而这一切都很好,当这些人生活的神奇仙境,但我们其他人需要得到我们的网站工作,看着对面IE6和其他浏览器确定.

$.support IE6和7看起来像这样:

leadingWhitespace: false
tbody:             false
objectAll:         false
htmlSerialize:     false
style:             false
hrefNormalized:    false
opacity:           false
cssFloat:          false
scriptEval:        false
noCloneEvent:      false
boxModel:          true
Run Code Online (Sandbox Code Playgroud)

我到底该如何使用这些属性来确定是否tr:hover有效?

是的我知道在这个例子中,它是相当无害的,我可能可以通过不向IE用户提供该功能,或者通过在所有浏览器中模拟它来逃避,但这不是重点.$.browser当你$.support没有接近替换它时,你应该如何停止使用?

jquery cross-browser sniffing

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

在Typescript中联合类型的两个函数

我有一种情况,我有一个类型,它是两个函数的联合,它们的文字值作为其参数之一的类型.归结为一个最小的例子,它基本上是这样的:

type FetchMini = (id: number, representation: 'mini') => MiniUser;
type FetchFull = (id: number, representation: 'full') => FullUser;

function f(fetchUser: FetchMini | FetchFull) {
  fetchUser(2, 'mini');
  fetchUser(2, 'full');
}
Run Code Online (Sandbox Code Playgroud)

这两个调用都使编译器失败并显示以下消息:

无法调用类型缺少调用签名的表达式.输入'FetchMini | FetchFull'没有兼容的呼叫签名

我明白了这种情况发生的原因,(......我想),但我该怎么办呢?

这是一个类似的问题,但它没有答案:即使参数满足每个函数的约束,函数联合也不可调用

types typescript

8
推荐指数
2
解决办法
2979
查看次数

存储社会保障/保险号码(SSN/SIN)的潜在法律问题?

使用我们系统的客户要求我们将最终用户的SSN/SIN存储在我们的数据库中.目前,我们存储有关用户的最少信息(姓名,电子邮件地址,以及可选的国家/地区),因此我并不过分关注安全漏洞 - 但是,我怀疑可能存在关于存储SSN而不是采取的法律问题"适当的"保护他们的措施(来自澳大利亚,这是我第一次遇到他们).这是一个有效的问题吗?

我还在维基百科页面上读到有关SIN(加拿大相当于SSN)的信息,它只能在绝对必要时使用,绝对不能用作通用标识符或类似信息.

那么,这类事情是否存在任何潜在的法律问题?你有什么建议?

security

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

在共享主机上安装PHP扩展

我需要在我的网站上启用mcrypt功能,除了我在共享主机(运行linux)上,显然无法访问该php.ini文件.似乎有安装PEAR模块的选项,但搜索告诉我mcrypt不可用.有什么方法可以做到这一点,没有乞求技术支持来帮助我吗?


更新:再看一下,看起来我可以dl()在运行时使用该函数动态加载库.因为我只在一个地方使用mcrypt函数,所以我可能会因为性能命中(我认为有一个命中)应该是最小的而逃避这样做.现在唯一的问题是如何获取libmcrypt.so文件?


另一个更新:我从Sourceforge下载了libmcrypt.tar.bz2文件并运行./configure,make然后将libmcrypt.so.4.4.8文件复制到我的主目录(as libmcrypt.so),但是现在我找不到放在哪里以便dl()函数找到它.

php

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

使用__call和静态类?

__call在静态调用函数时是否可以使用魔术方法?

php oop static magic-methods

7
推荐指数
2
解决办法
6480
查看次数

mod_rewrite正则表达式仅在某个字符串不存在时才匹配

通过我的服务器日志看,我看到了很多我的网站上的网页请求favicon.ico,favicon.jpg,favicon.png,等在各种不同的目录中.

我没有浏览每个页面以试图找出每个不正确的请求来自何处,而是编写了一些apache重定向规则来更改任何包含"favicon"重定向到的URL的请求/favicon.ico

我最初的天真尝试是这样的:

RewriteRule favicon /favicon.ico [R=301,L]
Run Code Online (Sandbox Code Playgroud)

但这意味着,当您实际请求时,/favicon.ico它会将您发送到无限重定向循环.

基本上我认为我需要的是具有这种效果的正则表达式:

| Request                | Response     |
|------------------------|--------------|
| favicon.png            | /favicon.ico |
| directory/favicon.png  | /favicon.ico |
| directory/favicon.ico  | /favicon.ico |
| favicon.ico            | <no match>   |
Run Code Online (Sandbox Code Playgroud)

regex apache mod-rewrite

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

SVN忽略子树中的所有文件(不是文件夹),

我有这样的文件夹结构:

/some_folder
/tmp
/tmp/foo
/tmp/foo/fu      *
/tmp/bar
/tmp/bar/bah     *
/tmp/bar/ba      *
/tmp/foobar      *
/more_folders
Run Code Online (Sandbox Code Playgroud)

/tmp目录用于缓存等等,所以我希望在版本控制下具有文件夹结构,但忽略每个目录中的所有文件.

文件只存在于叶文件夹中.也就是说,没有自己子文件夹的文件夹:上例中的已加星标的文件夹.

我唯一的选择是ignore *.*在每个叶子上设置,还是有办法忽略整个/tmp子目录中的所有文件(只是文件)?

svn tortoisesvn

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

事务是否会阻止MySQL中的所有竞争条件问题?

考虑这种情况:

  1. 开始交易
  2. 使用auto_increment键将20条记录插入表中
  3. 获取第一个插入ID(让我们说它是153)
  4. 更新该表中的所有记录 id >= 153
  5. 承诺

第4步安全吗?

也就是说,如果另一个请求几乎准确地同时进入,并在上面的步骤2之后插入另外20个记录,但在步骤4之前,是否会出现竞争条件?

mysql transactions race-condition

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

jQuery选择器,用于检查元素是否为隐藏动画

有没有办法判断元素是隐藏还是当前正在隐藏(通过动画)?我能想到做到这一点的唯一方法是存储一个标志元素的data,当你打电话show或者hide,但我不知道是否有另一种方式?

javascript jquery

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