小编Mik*_*ilt的帖子

现代网络爬虫是否使用click事件或直接导航到锚标签上的href?

我正在构建一个我希望对用户表现得像花哨的网站,但希望网络抓取工具仍然能够正常导航.

我有以下锚标记:

<a class="overrideClick" href="/projects">Projects</a>
Run Code Online (Sandbox Code Playgroud)

使用以下jQuery:

$(document).on('click', '.overrideClick', function(e) { 
    e.preventDefault(); 
    ( ... ) 
});
Run Code Online (Sandbox Code Playgroud)

这会杀死搜索引擎优化还是我可以期待谷歌/必应/等采取行动,因为我希望并遵循/项目?我认为他们历史上只使用了href值,但我知道谷歌现在正在评估一些JavaScript.

我知道我可以不包括抓取客户端的js,但知道它会很有趣.对于科学......

html javascript seo web-crawler

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

Activator.CreateInstance <T>与编译表达式.两台不同机器的反向性能

我和朋友正在测试使用编译表达式来创建对象,而不是Activator.CreateInstance<T>遇到一些有趣的结果.我们发现当我们在每台机器上运行相同的代码时,我们看到完全相反的结果.他得到了预期的结果,在编译表达式中表现明显更好,而我惊讶地看到Activator.CreateInstance<T>表现为2x.

两台计算机都运行在.NET 4.0中编译

计算机1安装了.NET 4.5.电脑2没有.

计算机1超过100000个对象:

45ms - Type<Test>.New()
19ms - System.Activator.CreateInstance<Test>();
Run Code Online (Sandbox Code Playgroud)

计算机2超过100000个对象:

13ms - Type<Test>.New()
86ms - System.Activator.CreateInstance<Test>();
Run Code Online (Sandbox Code Playgroud)

以下是代码:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Linq.Expressions;

namespace NewNew
{
    class Program
    {
        static void Main(string[] args)
        {
            Stopwatch benchmark = Stopwatch.StartNew();
            for (int i = 0; i < 100000; i++)
            {
                var result = Type<Test>.New();
            }
            benchmark.Stop();
            Console.WriteLine(benchmark.ElapsedMilliseconds + " Type<Test>.New()");

            benchmark = Stopwatch.StartNew();
            for (int i = 0; i < 100000; …
Run Code Online (Sandbox Code Playgroud)

c# reflection lambda activator

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

标签 统计

activator ×1

c# ×1

html ×1

javascript ×1

lambda ×1

reflection ×1

seo ×1

web-crawler ×1