小编Vil*_*lx-的帖子

如何在没有框架的情况下检查DOM是否准备就绪?

问题就像在这里和网络上的其他人一样 - 如何检查DOM是否已加载Javascript?但这里有一个问题:

  • 不使用像jQuery等框架;
  • 不知道你的脚本是否已经通过静态放置的<script>标签加载,或者在DOM加载后很久之后通过其他一些Javascript加载.

这可以或多或少地可靠地完成并且具有跨浏览器兼容性吗?

补充:让我澄清一下:我正在编写一个独立的.JS文件,可以包含在任意网页中.我想在加载DOM 之后执行代码.但我不知道如何将我的脚本包括在内.可以通过放置<script>标签(在这种情况下,传统onload或DOM准备解决方案将起作用); 或者它可以通过AJAX或其他方式加载,很久以后DOM已经加载(所以前面提到的解决方案永远不会触发).

javascript dom domready

63
推荐指数
5
解决办法
6万
查看次数

如何在ASP.NET MVC 3中创建自定义编辑器/显示模板?

我想为ASP.NET MVC(与之一起使用Html.EditorFor())中的不同数据类型制作自定义编辑器模板,包括重写现有模板.最终目标是创建一个迷你框架,其中每个编辑器都支持有关被更改的javascript通知,并且我可以向用户显示一条消息,即页面中有未保存的更改.(也许已经存在某些东西?)

我可以找到很多关于这些模板问题的问题,但是我找不到创建它们的教程或手册.他们去哪里?有什么特殊的语法吗?如何选择模板?模板中提供了哪些信息以及如何访问它?等等.

那么 - 在哪里可以找到有关这些模板的所有信息?

templates editortemplates asp.net-mvc-3

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

名称属性是否必须在HTML文档中是唯一的?

我记得曾经在规范中读过id属性和name属性共享相同的命名空间并且必须是唯一的.从此以后,我总是试图在我的应用程序中满足这个要求,即使给予相同idname相同的元素也要害怕.

但是最近我开始使用ASP.NET MVC 3,它(像PHP一样)可以name在几个输入控件上使用相同的属性,在服务器端形成一组值.我试图查找规范中的相关部分 - 但未能找到它.也许我误解了一些东西,或者读错了文档?

怎么回事呢?我想生成尽可能有效的HTML(在不同的应用程序中都是4.01和5).我可以毫无畏惧地使用这个技巧吗 或者我会违反某些内容并且应该更好地坚持独特的价值观?

html unique

58
推荐指数
3
解决办法
3万
查看次数

Javascript:RegExp.compile()有什么意义?

我有一种情况,我希望从用户获得一个正则表达式,并针对几千个输入字符串运行它.在手册中,我发现该RegExp对象有一种.compile()方法可用于加速这种情况.但是,如果我已经在构造函数中传递了它们,为什么我必须再次将regexp字符串传递给它?也许构造函数compile()自己做?

javascript regex compilation

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

用于编译的RAM驱动器 - 有这样的事吗?

Stack Overflow上的一个问题的答案(见下文)给了我一个很棒的小软件的想法,这对于所有编码器来说都是非常宝贵的.

我正在想象RAM驱动器软件,但有一个关键的区别 - 它将镜像我硬盘上的真实文件夹.更具体地说 - 包含我正在处理的项目的文件夹.这样,任何构建几乎都是瞬时的(或者至少快几个数量级).RAM驱动器将仅使用空闲资源将其内容与后台硬盘驱动器同步.

一个快速的谷歌搜索没有透露,但也许我只是不知道如何谷歌.也许有人知道这样的软件?最好免费,但合理的费用也可以.

补充:已经提出了一些我在一开始就丢弃的解决方案.他们将(没有特别的顺序):

  • 购买更快的硬盘驱动器(SSD可能或10K RPM).我不想要硬件解决方案.不仅软件有可能更便宜(免费软件,任何人?),但它也可以用于硬件修改不受欢迎的环境,例如在办公室.
  • 让OS/HDD进行缓存 - 它更清楚如何使用你的空闲RAM.OS/HDD具有通用缓存算法,可以缓存所有内容并尝试预测将来最需要哪些数据.他们不知道对我来说优先级是我的项目文件夹.而且我们都知道得很清楚 - 无论如何他们并没有真正地缓存它.;)
  • 周围有很多RAM驱动器; 使用其中之一.对不起,那是鲁莽的.只要有一点空闲时间,我就需要将数据同步回硬盘.在电力故障的情况下,我可以承受失去最后五分钟的工作,但不是因为我上次检查后的所有事情.

补充2:出现了一个想法 - 使用普通的RAM驱动器加上后台文件夹同步器(但我的意思是背景).有这样的事吗?

补充3:有趣.我刚刚尝试了一个简单的RAM驱动器.重建时间从大约14秒下降到大约7秒(不差),但增量构建仍然在~5秒 - 就像在HDD上一样.有什么想法吗?它使用aspnet_compileraspnet_merge.也许他们在其他地方做其他临时文件?

补充4:哦,很好的新答案!:)好的,我为你所有的反对者提供了更多的信息.:)

这个想法的主要原因之一不是上述软件(14秒构建时间),而是另一个我当时无法访问的软件.这个其他应用程序有100 MB的代码库,其完整版本大约需要5分钟.啊,是的,它在Delphi 5中,所以编译器不太先进.:)将源放在RAM驱动器上导致了巨大的差异.我想,我得到它的时间不到一分钟.我没有测量过.因此对于所有那些说操作系统可以更好地缓存内容的人 - 我会乞求不同.

相关问题:

RAM磁盘用于加速IDE

关于第一个链接的注意事项: 它链接的问题已被删除,因为它是重复的.它问道:

你的代码编译时你做了什么?

我联系的Dmitri Nesteruk的答案是:

我几乎立即编译.部分原因是我的项目很小,部分原因是因为使用了RAM磁盘.

directory caching compilation ramdrive

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

负载平衡群集中的PHP会话 - 如何?

好的,所以我有一个非常罕见的负载平衡PHP网站的独特场景.无赖是 - 它不习惯负载平衡.现在我们开始遇到问题......

目前唯一的问题是PHP会话.当然没有人首先想到这个问题所以PHP会话配置保持默认值.因此,两个服务器都有自己的一小部分会话文件,并且有一个用户将下一个请求抛给另一个服务器,因为它没有在第一个服务器上创建的会话.

现在,我一直在阅读PHP手册,了解如何解决这种情况.在那里我发现了很好的功能session_set_save_handler().(而且,巧合的是,关于SO的这个主题)整洁.除了我必须在网站的所有页面中调用此功能.未来页面的开发人员也必须记住一直调用它.感觉有点笨拙,更不用说可能违反了十几种最好的编码习惯.如果我可以翻转一些全局配置选项和Voilà会更好- 会话全部神奇地存储在DB或内存缓存中.

关于如何做到这一点的任何想法?


补充:澄清 - 我希望这是标准解决方案的标准情况.仅供参考 - 我有MySQL数据库可用.当然必须有一些现成的代码可以解决这个问题吗?当然,我可以编写我自己的会话保存内容,Gregauto_prepend指出的选项看起来很有希望 - 但这会让人觉得重新发明轮子.:P
补充2:负载均衡基于DNS.我不确定这是如何工作的,但我想它应该是这样的.
添加3:好的,我看到一个解决方案是使用auto_prepend选项session_set_save_handler()在每个脚本中插入一个调用并编写我自己的数据库容器,可能会调用以memcached获得更好的性能.很公平.

是否还有一些方法可以避免自己编码?像一些着名且经过良好测试的PHP插件?

很久以后添加了很多:这就是我最终的方式:如何在PHP + MySQL中正确实现自定义会话持久化?

此外,我只是在所有页面中手动包含会话处理程序.

php session load-balancing cluster-computing

47
推荐指数
3
解决办法
5万
查看次数

在C#中创建只读数组的最佳方法是什么?

我有一个非常不可能和原始的情况想要从我的财产返回一个只读数组.到目前为止,我只知道一种方法 - 通过System.Collections.ObjectModel.ReadOnlyCollection<T>.但这对我来说似乎有些尴尬,更不用说这个类失去了通过索引访问数组元素的能力(添加:哎呀,我错过了索引器).有没有更好的方法?什么可以使数组本身不可变?

c# arrays readonly

47
推荐指数
5
解决办法
3万
查看次数

MarshalByRefObject特别吗?

.NET有一个称为远程处理的东西,你可以在不同的应用程序域甚至物理机器之间传递对象.我不完全理解魔法是如何完成的,因此这个问题.

在远程处理中,有两种传递对象的基本方法 - 它们可以被序列化(转换为一堆字节并在另一端重建)或者它们可以从MarshalByRefObject继承,在这种情况下.NET会生成一些透明代理,所有这些都是方法调用被转发回原始实例.

这非常酷,就像魔法一样.而且我不喜欢编程中的魔法.纵观MarshalByRefObject与反射我看不到任何会使其有别于任何其他典型的对象.甚至不是一个奇怪的内部属性或任何东西.那么整个透明代理事件是如何组织起来的呢?我可以自己制作这样的机制吗?我可以制作一个MyMarshalByRefObject不会继承的替代品,MarshalByRefObject但仍会采取相同的行动吗?或者正在MarshalByRefObject接受.NET引擎本身的一些特殊处理,整个远程专长是不可复制的?

.net clr remoting

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

JavaScript中的小数点分隔符号是什么?

当我编写一段处理一些浮点值的JavaScript代码时,一个想法让我感到震惊.JavaScript中的小数点符号是什么?它总是.吗?还是文化特有的?并且怎么样.toFixed().parseFloat()?如果我正在处理用户输入,则可能包含本地特定于文化的小数点分隔符号.

最终,我想编写支持用户输入中的两个小数点的代码 - 特定于文化.,但如果我不知道JavaScript期望什么,我就不能编写这样的代码.

补充:好的,Rubens Farias 建议查看类似的问题,其中有一个很好的接受答案:

function whatDecimalSeparator() {
    var n = 1.1;
    n = n.toLocaleString().substring(1, 2);
   return n;
}
Run Code Online (Sandbox Code Playgroud)

这很好,它让我得到locale小数点.毫无疑问,迈向解决方案的一步.

现在,剩下的部分将是确定行为.parseFloat()是什么.几个答案指出,对于浮点文字只有.有效.是否.parseFloat()采取同样的方式?或者它可能在某些浏览器中需要本地小数点分隔符?是否有任何不同的方法来解析浮点数?我应该推出我自己的即将到来的吗?

javascript syntax parsing decimal-point

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

System.Guid.NewGuid()是如何随机的?(拿两个)

在您开始将其标记为重复之前,请将我读出来.另一个问题是(很可能)不正确的接受答案.

我不知道.NET如何生成其GUID,可能只有微软这样做,但它很有可能只是调用CoCreateGuid().但是,该函数被记录为调用UuidCreate().并且用于创建UUID的算法已被很好地记录.

长话短说,尽管如此,似乎System.Guid.NewGuid()确实使用了版本4 UUID生成算法,因为它生成的所有GUID都符合标准(参见自己,我尝试了几百万个GUID,它们都匹配).

换句话说,除了一些已知位之外,这些GUID 几乎是随机的.

这再次提出了一个问题 - 随机如何随机的?正如每个优秀的小程序员都知道的那样,伪随机数算法只与其种子(即熵)一样随机.那么种子是UuidCreate()什么?PRNG如何重新播种?它是加密强大的,或者如果两台计算机同时意外呼叫System.Guid.NewGuid(),我可以期望相同的GUID开始倾泻吗?如果收集到足够多的顺序生成的GUID,是否可以猜测PRNG的状态?

补充:为了澄清,我想知道我可以信任的随机性因此 - 我在哪里可以使用它.那么,让我们在这里建立一个粗略的"随机性"量表:

  1. 基本随机性,以当前时间为种子.可以在纸牌中使用洗牌,但是即使没有尝试也很容易碰到碰撞.
  2. 更高级的随机性,不仅使用时间,还使用其他机器特定的种子因子.也许在系统启动时也只播种一次.这可用于在DB中生成ID,因为不太可能重复.尽管如此,它对安全性并不好,因为可以用足够的努力预测结果.
  3. 密码随机,使用设备噪声或其他先进的种子随机源.每次调用或至少经常重新播种.可用于会话ID,分发给不受信任的各方等.

我在想到是否可以将它们用作数据库ID时,以及Guid.comb算法的实现System.Guid.NewGuid()(如NHibernate的实现方式)是否有缺陷,我就来到了这个问题.

.net random guid

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