小编Sam*_*ron的帖子

建议在JavaScript无效之前包含CSS吗?

在网上无数的地方,我已经看到了在JavaScript之前包含CSS的建议.一般来说,推理的形式如下:

在订购CSS和JavaScript时,您希望首先使用CSS.原因是渲染线程具有渲染页面所需的所有样式信息.如果首先包含JavaScript,则JavaScript引擎必须先解析它,然后再继续使用下一组资源.这意味着渲染线程无法完全显示页面,因为它没有所需的所有样式.

我的实际测试揭示了一些截然不同

我的测试工具

我使用以下Ruby脚本为各种资源生成特定的延迟:

require 'rubygems'
require 'eventmachine'
require 'evma_httpserver'
require 'date'

class Handler  < EventMachine::Connection
  include EventMachine::HttpServer

  def process_http_request
    resp = EventMachine::DelegatedHttpResponse.new( self )

    return unless @http_query_string

    path = @http_path_info
    array = @http_query_string.split("&").map{|s| s.split("=")}.flatten
    parsed = Hash[*array]

    delay = parsed["delay"].to_i / 1000.0
    jsdelay = parsed["jsdelay"].to_i

    delay = 5 if (delay > 5)
    jsdelay = 5000 if (jsdelay > 5000)

    delay = 0 if (delay < 0) 
    jsdelay = 0 if (jsdelay < 0)

    # Block which …
Run Code Online (Sandbox Code Playgroud)

javascript css performance

884
推荐指数
9
解决办法
10万
查看次数

在Vim中重命名当前文件

我应该如何在Vim中重命名我当前的文件?

例如:

  • 我正在编辑 person.html_erb_spec.rb
  • 我希望它重命名为 person.haml_spec.rb
  • 我想继续编辑 person.haml_spec.rb

我怎么会优雅地这样做呢?

vi vim

380
推荐指数
16
解决办法
19万
查看次数

在C#中使用Global Mutex有什么好的模式?

Mutex类被误解了,而Global mutex则更是如此.

在创建全局互斥锁时使用什么是好的,安全的模式?

一个会起作用的

  • 无论我的机器所在的语言环境如何
  • 保证正确释放互斥锁
  • 如果未获取互斥锁,则可选择不会永久挂起
  • 处理其他进程放弃互斥锁的情况

c# concurrency mutex

365
推荐指数
5
解决办法
10万
查看次数

我什么时候应该使用GC.SuppressFinalize()?

在.NET中,我应该在哪种情况下使用GC.SuppressFinalize()

使用这种方法有什么好处?

.net c# garbage-collection idisposable suppressfinalize

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

如果只在sql server中存在外键约束,我该怎么办?

我可以使用以下代码删除表,但不知道如何使用约束执行相同的操作:

IF EXISTS(SELECT 1 FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'TableName') AND type = (N'U')) DROP TABLE TableName
go 
Run Code Online (Sandbox Code Playgroud)

我还使用此代码添加约束:

ALTER TABLE [dbo].[TableName] 
  WITH CHECK ADD CONSTRAINT [FK_TableName_TableName2] FOREIGN KEY([FK_Name])
    REFERENCES [dbo].[TableName2] ([ID])
go
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2005

223
推荐指数
6
解决办法
25万
查看次数

临时禁用CSS过渡效果的最简洁方法是什么?

我有一个DOM元素,应用了以下一些/所有效果:

#elem {
  -webkit-transition: height 0.4s ease;
  -moz-transition: height 0.4s ease;
  -o-transition: height 0.4s ease;
  transition: height 0.4s ease;
}
Run Code Online (Sandbox Code Playgroud)

我正在编写一个调整此元素大小的jQuery插件,我需要暂时禁用这些效果,以便我可以顺利调整大小.

暂时禁用这些效果(然后重新启用它们)的最优雅方法是什么,因为它们可能是从父母那里应用的,或者可能根本不适用.

javascript css jquery

192
推荐指数
5
解决办法
15万
查看次数

我应该选择哪种加密哈希函数?

.NET框架附带了6种不同的散列算法:

  • MD5:16字节(哈希时间500MB:1462毫秒)
  • SHA-1:20个字节(1644毫秒)
  • SHA256:32字节(5618毫秒)
  • SHA3​​84:48字节(3839毫秒)
  • SHA512:64字节(3820毫秒)
  • RIPEMD:20个字节(7066毫秒)

每个功能都有不同的表现; MD5是最快的,RIPEMD是最慢的.

MD5的优势在于它适用于内置的Guid类型; 它是3型UUID的基础.SHA-1哈希是类型5 UUID的基础.这使得它们非常易于识别.

然而,MD5易受碰撞攻击,SHA-1也容易受到攻击,但程度较轻.

在什么条件下我应该使用哪种散列算法?

我真的很想回答的具体问题是:

  • MD5不值得信任吗?在正常情况下,当您使用没有恶意意图的MD5算法且没有任何第三方有任何恶意意图时,您会期望任何冲突(意味着两个任意byte []产生相同的哈希)

  • RIPEMD比SHA1好多少?(如果它更好)它的计算速度要慢5倍,但散列大小与SHA1相同.

  • 散列文件名(或其他短字符串)时获得非恶意冲突的几率是多少?(例如,2个具有相同MD5哈希值的随机文件名)(使用MD5/SHA1/SHA2xx)一般来说,非恶意冲突的几率是多少?

这是我使用的基准:

    static void TimeAction(string description, int iterations, Action func) {
        var watch = new Stopwatch();
        watch.Start();
        for (int i = 0; i < iterations; i++) {
            func();
        }
        watch.Stop();
        Console.Write(description);
        Console.WriteLine(" Time Elapsed {0} ms", watch.ElapsedMilliseconds);
    }

    static byte[] GetRandomBytes(int count) {
        var bytes = new byte[count];
        (new Random()).NextBytes(bytes);
        return bytes;
    }


    static void …
Run Code Online (Sandbox Code Playgroud)

.net c# hash cryptography cryptographic-hash-function

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

在Ruby中生成Guids

我有Guids很容易解决的问题.

特别是,对于密码重置工作流程,我想将Guid令牌发送到用户的电子邮件,并让他们使用令牌重置密码.由于guids是唯一的,这是非常安全的,并且节省了我通过电子邮件发送人员密码,这是有风险的.

我注意到Ruby 有一个Guid宝石 ; 但它看起来很旧,它把东西写入文件系统.

有谁知道可以创建全球唯一标识符的任何其他宝石?

我知道我可以回到:

(0..16).to_a.map{|a| rand(16).to_s(16)}.join 
Run Code Online (Sandbox Code Playgroud)

但它看起来并不像是一个合适的GUID ......

ruby guid

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

在C#中对小代码示例进行基准测试,是否可以改进此实现?

经常这样我发现自己对小块代码进行基准测试,看看哪个实现最快.

我经常看到基准测试代码没有考虑到jitting或垃圾收集器的评论.

我有以下简单的基准测试功能,我已经慢慢演变了:

  static void Profile(string description, int iterations, Action func) {
        // warm up 
        func();
        // clean up
        GC.Collect();

        var watch = new Stopwatch();
        watch.Start();
        for (int i = 0; i < iterations; i++) {
            func();
        }
        watch.Stop();
        Console.Write(description);
        Console.WriteLine(" Time Elapsed {0} ms", watch.ElapsedMilliseconds);
    }
Run Code Online (Sandbox Code Playgroud)

用法:

Profile("a descriptions", how_many_iterations_to_run, () =>
{
   // ... code being profiled
});
Run Code Online (Sandbox Code Playgroud)

这个实现是否有任何缺陷?是否足以表明实现X比Z迭代实现Y更快?您能想出任何可以改善这种情况的方法吗?

编辑 很明显,基于时间的方法(与迭代相反)是首选,是否有人有任何实施时间检查不会影响性能?

.net c# performance profiling

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

当固定元素获得焦点时,ios8中的Safari是滚动屏幕

在IOS8 Safari中,有一个新的位置修复错误.

如果您聚焦固定面板中的文本区域,Safari会将您滚动到页面底部.

这使得所有类型的UI都无法使用,因为您无法将文本输入textareas而无需将页面一直向下滚动并丢失位置.

有没有办法干净地解决这个bug?

#a {
  height: 10000px;
  background: linear-gradient(red, blue);
}
#b {
  position: fixed;
  bottom: 20px;
  left: 10%;
  width: 100%;
  height: 300px;
}

textarea {
   width: 80%;
   height: 300px;
}
Run Code Online (Sandbox Code Playgroud)
<html>
   <body>
   <div id="a"></div>
   <div id="b"><textarea></textarea></div>
   </body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript css safari ios ios8

91
推荐指数
4
解决办法
6万
查看次数