精华内容
下载资源
问答
  • 在我们之前的文章中也或多或少地向大家介绍了有关HTML代码优化技巧,接下来将系统地讲解HTML代码的几个优化重点。 1.Title 标签 Title 标签能够告诉用户和搜索引擎网页页面的主题思想是什么,一直是搜索引擎的...

    众所周知,HTML代码一直是搜索引擎抓取的重点。搜索引擎会将HTML中的某些元素标签作为影响网页排名的重要依据

    在我们之前的文章中也或多或少地向大家介绍了有关HTML代码的优化技巧,接下来将系统地讲解HTML代码的几个优化重点。

    1.Title 标签

    Title 标签能够告诉用户和搜索引擎网页页面的主题思想是什么,一直是搜索引擎的抓取重点。通常,搜索引擎抓取Title标签出于两个目的:作为影响网页排名的重要因素和作为搜索结果页面的显示信息。不管是哪一个目的,对我们做SEO来说都非常重要。
    一般来说,Title标签中的单词最好保持在3~6个左右,最好包含关键字。但Title标签中的单词不要全部都是关键字,因为这样可能会造成页面关键字堆砌,导致过度优化。所选单词应简洁明了、具有描述性,要与网页内容具有很大的相关性,并且每个不同的页面都应该包含Title标签。

    2.Meta Description标签

    对Title标签优化之后,接下来就是对Meta Description标签的优化。Meta Description标签可以说是对Title标签的进一步解释,可以是一句话或者是包含十几个单词的短语。每个页面都该有其自己的Meta Description标签,并且Meta Description标签还可包含一些与网站内容相关但Title标签中未提及的信息。与Title标签要求相似,该部分内容也应具有描述性,与网页内容具有相关性,可包含关键字,但不可过多。

    3.Heading标签

    Heading标签包含了H1、H2、H3等等,是搜索引擎识别页面信息的重要标记。合理使用H1、H2、H3等不同级别的标签能够使得页面结构更加清晰,有利于搜索引擎的抓取。H1、H2、H3等标签是按照重要程度来排名的。一般一个页面按照需求程度来适当添加该标签:从H1开始,依次往下添加。但不可添加太多Heading标签,否则会适得其反。

    4.Strong和B标签

    相信大多数朋友都知道Strong和B标签都有加粗的意思,但是很多人并不清楚两者具体有什么区别。其实B标签就是单纯地将文字加粗,而Strong标签不仅是对文字加粗,并且这种形式的加粗会告诉搜索引擎该部分文字比较重要。所以两者从搜索引擎优化的角度来看,是有很大的区别的。
    上文中所提到的Heading标签页具有加粗效果,那么这三种标签到底该怎么用?其实,Heading标签一般用于文章大标题以及每段的小标题,而Strong标签一般用于文章段落中的重点词汇,而B标签一般只是强调一种视觉效果。

    5.ALT标签

    ALT标签是一种图片标签,它将图片的信息以文本的形式展现。对ALT标签的使用没有太多要求,只要在网页中出现图片的部分添加上该属性即可,但其标签内容应与相应页面内容具有相关性,长度不得过长,一般1~5个单词即可。

    以上介绍了HTML代码中的五种重要标签,相信会对做SEO工作的人员特别是SEO新手具有很大帮助。对HTML代码的优化一直是我们做搜索引擎优化工作的非常基础并且重要的一部分,只有做好了这部分优化工作,我们才能开展更加深层的优化。

    原文:http://www.jb51.net/yunying/154286.html

    展开全文
  • C#代码精简优化技巧总结

    千次阅读 2014-01-17 12:01:12
    在我们写代码的时候可以使用一些小的技巧来使代码变得更加简洁,易于维护和高效。 1 .空操作符(??) 在程序中经常会遇到对字符串或是对象判断null的操作,如果为null则给空值或是一个指定的值。通常我们会这

    在我们写代码的时候可以使用一些小的技巧来使代码变得更加简洁,易于维护和高效。

    怎样提高开发效率

    给你一个任务,限定5天内完成,如果你实际用了6天,可以说是开发效率不高,或者同样的一个任务,你花了6天,而你的同事却只用了4天,也可以说是你的开发效率不高,影响开发效率的因素有很多,下面就我个人的理解来谈谈怎样提高开发效率.

     

    工具

    俗话说,工欲善其事必先利其器,使用得心应手的工具必然会提高开发效率,做微软平台开发的肯定离不开VS,就VS本身来说,除了常用功能外一些常用的快捷键一定要能熟练运用,例如下面是我认为比较有用的几个快捷键:

    • 注释: Ctrl + K + C
    • 取消注释: Ctrl + K + U
    • 全屏: Shift + Alt + Ente
    • 设置标签: CTRL + K, CTRL + K
    • 下一个、上一个标签: CTRL + K, CTRL + P 、CTRL + K, CTRL + P
    • 列出成员: Ctrl + J
    • 显示参数信息: Ctrl + Shift + Space
    • 转到定义后返回: Ctrl + -

     

    熟练使用快捷键对于代码编写的速率和跟踪代码的速率会有大大的提高。 有时候开发工具自身的功能受到了限制,这是就需要使用插件来丰富功能,这里推荐两款插件,VS中的ReSharper和SqlServer中的SQL prompt5,ReSharper是功能很强大的一个VS插件,但会拖慢VS的速度,就看怎么去权衡了。

     

    代码质量 

    代码质量好了,产生的bug就少,和测试的交互也就少了,也就不会因为前面产生的bug而影响后面的进度,效率自然就高了。代码质量可以分三个方面来看: 1 代码出错少,能够正常的运行;

    • 主动学习,提升自我的编程技能;
    • 勤思考,对干过的错要经常总结,一些规范性的原则要牢记,这些常常会出现一些低级错误;
    • 一个任务做完后需要进行充分的自测。

     

    2 代码的运行效率高,在大数据、高并发的时候能够高效运行;

    • 高性能的开发得从点滴做起,不放过每一个细节,可能一个小的细节点就是一个性能的瓶颈;
    • 要有重构代码的习惯,好的代码是重构出来的,高性能的代码也是重构出来的;
    • 多学习一些原理性的知识,不光要知其然还是知其所以然,基础扎实了,一些性能的问题就知道怎么去优化了;

     

    3 代码最后的运行结果要和客户的要求一致;

    • 做需求之前把自己的理解跟需求分析进行沟通看是否能达成一致,如果是直接和客户进行沟通可以先做出小Demo,然后给客户演示,根据反馈不断改进;
    • 在做的过程中如果遇到有疑问的地方一定要和需求或客户进行沟通,不要根据自己的想法想当然的去进行代码编写;
    • 必要的时候可以引导客户,我们的主要目的能以最有效的方式帮客户解决问题,不能盲目的按照客户的要求来,有时客户说需要一双雨鞋,可能一把伞就可以解决问题。同样对于需求分析写的文档,开发也需要有质疑的精神。

     

    业务知识学习

    做任何的系统都避免不了有业务背景,熟练的了解业务知识可以使我们更清楚的知道我们是在做什么。很多的开发人员可能只喜欢钻研技术,对业务往往没什么兴趣,代码写完了,可能还不知道做出的模块时做什么用的,这样写出来的代码的质量就可想而知了。

    • 学习业务可能很枯燥,但却是一劳永逸的事情,所以不管是否有兴趣,还是应该硬着头皮啃下来;
    • 小组内可以成立兴趣小组,探讨的方式来进行学习,互相分享各自的学习内容,关键是组内的氛围要搞起来;
    • 如果是直接跟客户沟通,需要用客户能听懂的语言,比如图文配合或是一些小Demo,否则当开发术语碰上领域术语就可能都是在对牛弹琴了。

     

     

     

    1 .空操作符(??)

    在程序中经常会遇到对字符串或是对象判断null的操作,如果为null则给空值或是一个指定的值。通常我们会这样来处理

    string name = value;
    if (name == null)
    {
        name = string.Empty;
    }

    可以使用三元操作符(?:)对上面对吗进行优化

    string name = value == null ? string.Empty : value;

    这样使代码简洁了不少,但这还不是最简洁的,我们还可以使用??操作符来进行进一步优化,??操作符意思是如果为null取操作符左边的值,否则取右边的值。

    string name = value ?? string.Empty;

    我们甚至可以写一个扩展方法来过滤掉null和空格,使返回的结果可以更好的使用??操作符

    public static class StringUtility
    {
        public static string TrimToNull(string source)
        {
            return string.IsNullOrWhiteSpace(source) ? null : source.Trim();
        }
    }

    使用代码如下:

    string name = string.TrimToNull(value) ?? "None Specified";

    2. 使用As转换类型

    在C#中进行类型转换有很多种方式比如可以进行强制类型转换,通常在转换前会使用Is进行类型的判断,所以您可能经常写过或见过类似下面的代码

    if (employee is SalariedEmployee)
    {
        var salEmp = (SalariedEmployee)employee;
        pay = salEmp.WeeklySalary;
        // ...
    }

    上面的代码不会报异常,但在整个过程中做了两次转换操作,这样会降低性能。我们可以使用as操作符来进行类型的转换,同样也不会报异常,如果类型不兼容则返回null,而是用as进行转换整个过程只转换一次。代码如下:

    var salEmployee = employee as SalariedEmployee;
    if (salEmployee != null)
    {
        pay = salEmployee.WeeklySalary;
        // ...
    }

     

    3.string.IsNullOrEmpty() and string.IsNullOrWhiteSpace()

    在Net2.0中String类型有一个静态方法IsNullOrEmpty,到了Net4.0中String类又增加了一个新的静态方法IsNullOrWhiteSpace。这两个方法看名称也可以知道IsNullOrEmpty是判断空引用和空字符串,而IsNullOrWhiteSpace是判断空引用和字符串中的每一个字符是否是空格。

    在有这两个方法之前,我们要进行这样的判断,需要些如下代码

    public string GetFileName(string fullPathFileName)
    {
        if (fullPathFileName == null || fullPathFileName.Length == 0)
        {
            throw new ArgumentNullException(fullPathFileName);
        } 
        //...
    } 

    使用IsNullOrEmpty

    public string GetFileName(string fullPathFileName)
    {
        if (string.IsNullOrEmpty(fullPathFileName))
        {
           
          throw new ArgumentNullException(fullPathFileName);
        } 
        //...
    } 

    下面又了新的需求,需要将三个名字连接在一起,并且希望中间名字不为空字符串和不出现多余的空格,我们会写出下面的代码

    public string GetFullName(string firstName, string middleName, string lastName)
    {
        if (middleName == null || middleName.Trim().Length == 0)
        {
            return string.Format("{0} {1}", firstName, lastName);
        }
        return string.Format("{0} {1} {2}", firstName, middleName, lastName);
    } 

    上面的代码中使用了Trim来去掉空格然后判断其长度是否为0,代码也非常的清晰简洁,但是会产生额外的String对象以至于影响性能,这时就应该使用Net4.0中的IsNullOrWhiteSpace方法

    public string GetFullName(string firstName, string middleName, string lastName)
    {
        if (string.IsNullOrWhiteSpace(middleName))
        {
            return string.Format("{0} {1}", firstName, lastName);
        }
        return string.Format("{0} {1} {2}", firstName, middleName, lastName);
    } 

    上面的代码非常简洁,而且也不用担心会产生额外的String对象没有及时的进行垃圾回收而影响性能。

     


     

    4.自动属性

    public class Point
    {
        private int _x, _y;
    
        public int X
        {
            get { return _x; }
            set { _x = value; }
        }
        public int Y
        {
            get { return _y; }
            set { _y = value; }
        }
    }

    使用自动属性代码就会简洁了很多

    public class Point
    {
        public int X { get; set; }
        public int Y { get; set; }
    }

    在自动属性中,我们可以给get或set访问器设置访问级别,使属性变成只读属性或是只写属性

    public class Asymetrical
    {
        public string ThisIsReadOnly { get; private set; }
        public double ThisIsWriteOnly { private get; set; }
    }

    5.StopWatch类

    在程序开发中有时会需要统计一个方法或是一个存储过程执行了多长时间,比如在做一些方法的性能测试时就需要用到这用的时间统计功能,很自然想到的方法是在处理的方法前后各记录一个时间,然后计算时间差,如下

    DateTime start = DateTime.Now;
    SomeCodeToTime();
    DateTime end = DateTime.Now;
    Console.WriteLine("Method took {0} ms", (end - start).TotalMilliseconds);

    尽管使用DateTime的时间差可以达到目的,但DateTime统计出来的时间差并不是很精确,想要精确我们可以使用Win32 API调用PInvoke,但是做法非常麻烦而且容易出错。

    这时我们就需要使用StopWatch类了,使用这个类必须引用命名空间 System.Diagnostics

    var timer = Stopwatch.StartNew();
    SomeCodeToTime();
    timer.Stop();
    Console.WriteLine("Method took {0} ms", timer.ElapsedMilliseconds);

    6.string.Equals()

    string.Equals方法有很多的重载供我们使用,但是其中有些常常会被我们忽视掉。通常我们比较字符串会使用下面的方法

    public Order CreateOrder(string orderType, string product, int quantity, double price)
    {
        if (orderType.Equals("equity"))
        {
        }
        // ...
    }   

    如果orderType为null会抛出NullReferenceException异常,所以为了不抛出异常,在判断之前先要进行null的判断,如下:

    if (orderType != null && orderType.Equals("equity"))

    相当于每次都要做两次判断,很麻烦而且有时还有可能遗忘,如果使用string.Equals就可以解决这个问题,代码如下:

    if (string.Equals(orderType, "equity"))

    上面的代码当orderType为null时不会抛出异常而是直接返回false。

    判断字符串相等的时候有时会需要区分大小写,很多人的习惯做法是先转换成大小或是小些在进行比较(建议转换成大写,因为编译器做了优化可以提高性能),但是当转换成大写或是小写时又会创建的的字符串,使性能降低。这时应该使用StringComparison.InvariantCultureIgnoreCase,代码如下

    if (orderType.Equals("equity", StringComparison.InvariantCultureIgnoreCase))

    如果要考虑到null的情况,还是应该使用string.Equal

    if (string.Equals(orderType, "equity", StringComparison.InvariantCultureIgnoreCase))

    7.using语句

    我们都知道using最常用的地方就是在类中引用命名空间。除此之外还可以用作设置别名和应用在一些实现了IDisposable 借口的对象实例上,可以使这些对象在using的作用范围内自动释放资源。下面的代码示例是没有使用using的情况:

    public IEnumerable<Order> GetOrders()
    {
        var orders = new List<Order>();
        var con = new SqlConnection("some connection string");
        var cmd = new SqlCommand("select * from orders", con);
        var rs = cmd.ExecuteReader();
        while (rs.Read())
        {
            // ...
        }
        rs.Dispose();
        cmd.Dispose();
        con.Dispose();
        return orders;
    } 
    上面的代码不怎么好看,而且也没有对异常的处理,如果在代码执行过程中出现了异常将会导致有些资源不能及时释放,尽管最终还是会被垃圾回收,但还是会影响性能呢。

    public IEnumerable<Order> GetOrders()
    {
        var orders = new List<Order>();
    
        using (var con = new SqlConnection("some connection string"))
        using (var cmd = new SqlCommand("select * from orders", con))
        using (var rs = cmd.ExecuteReader())
        {
            while (rs.Read())
            {
                // ...
            }
        }
        return orders;
    } 
     
    8.对象和集合初始化器 
    

    在C#3.0及以上版本中增加了对象和集合初始化器的新特性,会使代码看起来更加简洁,还有可能带来更高的性能。初始化器其实就是一个语法糖。看下面的例子,给出的是一个结构

    public struct Point
    {
        public int X { get; set; }
        public int Y { get; set; }
    } 

    普通初始化如下

    var startingPoint = new Point();
    startingPoint.X = 5;
    startingPoint.Y = 13;

    使用初始化器初始化

    var startingPoint = new Point() { X = 5, Y = 13 };

    代码的确精简了不少,从三行减到了一行,可以让我们少敲很多字。

    下面再来看看集合的初始化,假设我们在一个集合List中添加5个整数

    var list = new List<int>();
    list.Add(1);
    list.Add(7);
    list.Add(13);
    list.Add(42);

    使用集合初始化器,代码如下

    var list = new List<int> { 1, 7, 13, 42 };
     
     

    下面来看一个通常情况下对象和集合一起使用的例子

    var list = new List<Point>();
    var point = new Point();
    point.X = 5;
    point.Y = 13;
    list.Add(point);
    point = new Point();
    point.X = 42;
    point.Y = 111;
    list.Add(point);
    point = new Point();
    point.X = 7;
    point.Y = 9;
    list.Add(point); 

    下面为使用了初始化器的代码,可以对比一下区别

    var list = new List<Point>
    {
        new Point { X = 5, Y = 13 },
        new Point { X = 42, Y = 111 },
        new Point { X = 7, Y = 9 }
    }; 
    
       
    9.System.IO.Path

    Net中的System.IO.Path方法有很多的静态方法来处理文件和路径。很多时候我们尝试手动的将路径和文件名结合在一起而导致产生的文件路径不可用,因为我们往往忽视了路径后面可能有一个结尾符号‘\’。现在使用Path.Combine()方法可以避免这种错误

    string fullPath = Path.Combine(workingDirectory, fileName);

    假设现在有一个带文件名的完整的路径名,我们需要取其中的路径、文件名或是文件的扩展名。Path类的很多静态方法可以满足我们的需要,如下

    string fullPath = "c:\\Downloads\\output\\t0.html";
    // gets "c:\"
    string pathPart = Path.GetPathRoot(fullPath);
    // gets "t0.html"
    string filePart = Path.GetFileName(fullPath);
    // gets ".html"
    string extPart = Path.GetExtension(fullPath);
    // gets "c:\downloads\output"
    string dirPart = Path.GetDirectoryName(fullPath);

    所以当我们遇到这种需要对文件路径进行操作时,我们可以去使用Path类的静态方法。



    展开全文
  • 因此下面介绍的小技巧对于真实世界的 Web 文档将会十分有用。 第一部分内容综合讨论了常见的样式系统是如何分类规则的。接下来的部分包含了书写规则的指南,它利用了前面讨论的样式系统的优点。 样式系统如何拆分...
  • 优化HTML代码的多种技巧

    千次阅读 2016-01-13 17:31:54
    如何提升Web页面的性能,很多开发人员从多个方面来下手如JavaScript、图像优化、服务器配置,文件压缩或是调整CSS。很显然HTML 已经达到了一个瓶颈,尽管它是开发Web 界面必备的核心语言。HTML页面的负载也是越来越...

    如何提升Web页面的性能,很多开发人员从多个方面来下手如JavaScript、图像优化、服务器配置,文件压缩或是调整CSS。

    很显然HTML 已经达到了一个瓶颈,尽管它是开发Web 界面必备的核心语言。HTML页面的负载也是越来越重。大多数页面平均需要40K的空间,像一些大型网站会包含数以千计的HTML 元素,页面Size会更大。

    如何有效的降低HTML 代码的复杂度和页面元素的数量,本文主要解决了这个问题,从多个方面介绍了如何编写简练,清晰的HTML 代码,能够使得页面加载更为迅速,且能在多种设备中运行良好。

     

    在设计和开发过程中需要遵循以下原则:

    • 结构分离:使用HTML 增加结构,而不是样式内容;
    • 保持整洁:为工作流添加代码验证工具;使用工具或样式向导维护代码结构和格式
    • 学习新语言:获取元素结构和语义标记。
    • 确保可访问: 使用ARIA 属性和Fallback 属性等
    • 测试: 使网站在多种设备中能够良好运行,可使用emulators和性能工具。

    Sample HTML document with guidelines

    HTML,CSS 和JavaScript三者的关系

    HTML 是用于调整页面结构和内容的标记语言。HTML 不能用于修饰样式内容,也不能在头标签中输入文本内容,使代码变得冗长和复杂,相反使用CSS 来修饰布局元素和外观比较合适。HTML元素默认的外观是由浏览器默认的样式表定义的,如在Chrome中h1标签元素会渲染成32px的Times 粗体。

    三条通用设计规则:

    1. 使用HTML 来构造页面结构,CSS修饰页面呈现,JavaScript实现页面功能。CSS ZenGarden 很好地展示了行为分离。
    2. 如果能用CSS或JavaScript实现就少用HTML代码。
    3. 将CSS和JavaScript文件与HTML 分开存放。这可有助于缓存和调试。

     

    文档结构方面也可以做优化,如下:

    • 使用HTML5 文档类型,以下是空文件:
    <!DOCTYPE html>
    <html>
    
    <head>
     <title>Recipes: pesto</title>
    </head>
    
    <body>
    
      <h1>Pesto</h1>
    
      <p>Pesto is good!</p>
    
    </body>
    </html>

     

    • 在文档起始位置引用CSS文件,如下:
    <head>
      <title>My pesto recipe</title>
    
      <link rel="stylesheet" href="/css/global.css">
      <link rel="stylesheet" href="css/local.css">
    
    </head>

     

    使用这两种方法,浏览器会在解析HTML代码之前将CSS信息准备好。因此有助于提升页面加载性能。

    在页面底部body结束标签之前输入JavaScript代码,这样有助于提升页面加载的速度,因为浏览器在解析JavaScript代码之前将页面加载完成,使用JavaScript会对页面元素产生积极的影响。

    <body>
    
      ...
    
      <script src="/js/global.js">
      <script src="js/local.js">
    
    </body>
    

    使用Defer和async属性,脚本元素具有async 属性无法保证会按顺序执行。

    可在JavaScript代码中添加Handlers。千万别加到HTML内联代码中,比如下面的代码则容易导致错误且不易于维护:

    index.html:

    <head>
      
      ...
    
      <script src="js/local.js">
    
    </head>
    
    <body οnlοad="init()">
    
      ...
    
      <button οnclick="handleFoo()">Foo</button>
    
      ...
    
    </body>

     

    下面的写法比较好:

    index.html:

    <head>
    
      ...
    
    </head>
    
    <body>
    
      ...
    
      <button id="foo">Foo</button>
    
      ...
    
      <script src="js/local.js">
    
    </body>

    js/local.js:

    init();
    var fooButton =
        document.querySelector('#foo');
    fooButton.onclick = handleFoo();

    验证

    优化网页的一种方法就是浏览器可处理非法的HTML 代码。合法的HTML代码很容易调试,且占内存少,耗费资源少,易于解析和渲染运行起来更快。非法的HTML代码让实现响应式设计变得异常艰难。

    当使用模板时,合法的HTML代码显得异常重要,经常会发生模板单独运行良好,当与其他模块集成时就报各种各样的错误,因此一定要保证HTML代码的质量,可采取以下措施:

    • 在工作流中添加验证功能:使用验证插件如HTMLHint或SublineLinter帮助你检测代码错误。
    • 使用HTML5文档类型
    • 确保HTML的层次结构易于维护,要避免元素嵌套处于左开状态。
    • 保证添加各元素的结束标签。
    • 删除不必要的代码 ;没有必要为自关闭的元素添加结束标签;Boolean 属性不需要赋值,如果存在则为True;
    <video src="foo.webm" autoplay controls>

    代码格式

    格式一致性使得HTML代码易于阅读,理解,优化,调试。

    语义标记

    语义指意义相关的事物,HTML 可从页面内容中看出语义:元素和属性的命名一定程度上表达了内容的角色和功能。HTML5 引入了新的语义元素,如<header>,<footer>及<nav>。

    选择合适的元素来编写代码可保证代码的易读性:

    • 使用<h1>(<h2>,<h3>…)表示标题,<ul>或<ol>实现列表
    • 注意使用<article> 标签之前应添加<h1>标签;
    • 选择合适的HTML5语义元素如<header>,<footer>,<nav>,<aside>;
    • 使用<p>描述Body 文本,HTML5 语义元素可以形成内容,反之不成立。
    • 使用<em>和<strong>标签替代<i>和<b>标签。
    • 使用<label>元素,输入类型,占位符及其他属性来强制验证。
    • 将文本和元素混合,并作为另一元素的子元素,会导致布局错误,

    例如:

    <div>Name: <input type="text" id="name"></div>
    换种写法会更好:
       1:  <div>
       2:    <label for="name">Name:</label><input type="text" id="name">
       3:  </div>
     

    布局

    要提高HTML代码的性能,要遵循HTML 代码以实现功能和为目标,而不是样式。

    • 使用<p>元素修饰文本,而不是布局;默认<p>是自动提供边缘,而且其他样式也是浏览器默认提供的。
    • 避免使用<br>分行,可以使用block元素或CSS显示属性来代替。
    • 避免使用<hr>来添加水平线,可使用CSS的border-bottom 来代替。
    • 不到关键时刻不要使用div标签。
    • 尽量少用Tables来布局。
    • 可以多使用Flex Box
    • 使用CSS 来调整边距等。

    CSS

    虽然本文讲解的是如何优化HTML,下面介绍了一些使用css的基本技能:

    • 避免内联css
    • 最多使用ID类 一次
    • 当涉及多个元素时,可使用Class来实现。

    以上就是本文介绍的优化HTML代码的技巧,一个高质量高性能的网站,往往取决于对细节的处理,因此我们在日常开发中,能够考虑到用户体验,后期维护等方面,则会产生更高效的开发。

    展开全文
  • 今天来进行讨论深度学习中的一种优化方法Label smoothing Regularization(LSR),即“标签平滑归一化”。由名字可以知道,它的优化对象是Label(Train_y)。它的优化对象是Label(Train_y)。  对于分类问题,尤其是多...

    今天来进行讨论深度学习中的一种优化方法Label smoothing Regularization(LSR),即“标签平滑归一化”。由名字可以知道,它的优化对象是Label(Train_y)。它的优化对象是Label(Train_y)。

      对于分类问题,尤其是多类别分类问题中,常常把类别向量做成one-hot vector(独热向量)

    简单地说,就是对于多分类向量,计算机中往往用[0, 1, 3]等此类离散的、随机的而非有序(连续)的向量表示,而one-hot vector 对应的向量便可表示为[0, 1, 0],即对于长度为n 的数组,只有一个元素是1,其余都为0。因此表征我们已知样本属于某一类别的概率是为1的确定事件,属于其他类别的概率则均为0。

    one-hot 带来的问题:

      对于损失函数,我们需要用预测概率去拟合真实概率,而拟合one-hot的真实概率函数会带来两个问题:

    1)无法保证模型的泛化能力,容易造成过拟合;

    2) 全概率和0概率鼓励所属类别和其他类别之间的差距尽可能加大,而由梯度有界可知,这种情况很难adapt。会造成模型过于相信预测的类别。

    使用下面的 label smoothing 可以缓解这个问题:

     

    原理:对于以Dirac函数分布的真实标签,我们将它变成分为两部分获得(替换)

    1) 第一部分:将原本Dirac分布的标签变量替换为(1 - ϵ)的Dirac函数;

    2) 第二部分:以概率 ϵ ,在u(k)u(k) 中份分布的随机变量。

    代码对应:

    def label_smoothing(inputs, epsilon=0.1):
        K = inputs.get_shape().as_list()[-1]    # number of channels
        return ((1-epsilon) * inputs) + (epsilon / K)

    代码的第一行是取Y的channel数也就是类别数

    第二行就是对应公式了。

    下面用一个例子理解一下:

    假设我做一个蛋白质二级结构分类,是三分类,那么K=3;

    假如一个真实标签是[0, 0, 1],取epsilon = 0.1,

    新标签就变成了 (1 - 0.1)× [0, 0, 1] + (0.1 / 3) = [0, 0, 0.9] + [0.0333, 0.0333, 0.0333]

    = [0.0333, 0.0333, 0.9333]

    实际上分了一点概率给其他两类(均匀分),让标签没有那么绝对化,留给学习一点泛化的空间。

    从而能够提升整体的效果。

    文章[2]表示,对K = 1000,ϵ = 0.1的优化参数,实验结果有0.2%的性能提升。

    参考: [1]. https://blog.csdn.net/yiyele/article/details/81913031 

                [2]. Rethinking the Inception Architecture for Computer Vision

    展开全文
  • 站内seo优化标签调用代码 1、分类栏目标题添加分页码 在网站各分类栏目添加一定数量内容之后,文章列表自然而然会形成分页,如果栏目标题不添加分页码用来标记当前页数,那就很容易出现较多相同标题的页面。 这...
  • 本文较为详细分析了jQuery性能优化技巧。分享给大家供大家参考。具体分析如下: 一、使用最新版本的jQuery类库 jQuery新版本会较上个版本进行Bug修复和一些优化,不过需要注意的是,在更换版本之后,不要忘记测试你...
  • SEO优化技巧

    万次阅读 2019-07-25 08:59:27
    meta标签的作用有:搜索引擎优化,定义页面实用语言,自动刷新并指向新的页面,实现网页转换时的动态效果 ,控制页面缓冲,网页定级评价,控制网页显示的窗口等! `META`标签的`keywords <meta name="Keywords...
  • Web前端开发学习3:SEO代码优化

    千次阅读 2015-10-31 18:28:17
    代码优化概述  关于代码优化的知识是纯理论的知识,学习的很枯燥。在学到CSS时,不免遇到CSS+div进行代码优化的知 识,因此在网上看了一些关于这方面的知识,简单的整合一下,梳理自己所了解的代码优化问题。  ...
  • 深度学习 优化技巧---label smoothing 标签平滑 理解实例。 https://blog.csdn.net/neveer/article/details/91646657 问题背景 对于分类问题,尤其是多类别分类问题中,常常把类别向量做成one-hot vector(独热...
  • Android性能优化—布局优化技巧

    千次阅读 2017-03-21 19:12:08
    安卓 布局优化 提高性能
  • 黑帽SEO网站优化常用的15种技巧

    千次阅读 2019-09-20 17:05:22
    今天就来跟大家分享下黑帽SEO网站优化常用的14技巧,一起来跟叶涛看看吧! ●黑链扫描+挂链 扫描FTP或者服务器的弱口令、漏洞,然后黑掉网站,把链接挂进去。这是不合法的手段,这些SEOer也是我鄙视的,国内大有...
  • 代码 优化 指南 实践

    千次阅读 2012-02-04 11:53:46
    C代码优化方案                     华中科技大学计算机学院   姓名: 王全明 QQ: 375288012 Email: quanming1119@163.com 目录 目录 C代码优化方案 1、选择合适的算法和...
  • 一些你需要知道的布局优化技巧

    万次阅读 多人点赞 2016-10-19 21:50:45
    转载请注明出处:...今天分享一些layout布局书写中的一些技巧,希望看过之后你也一样可以写出性价比高的布局。我个人的目标是用最少的View写出一样效果的布局。
  • 图像分类算法优化技巧

    万次阅读 多人点赞 2018-12-26 20:58:43
    作者采用ResNet-152作为teacher model,用ResNet-50作为student model,代码上通过在ResNet网络后添加一个蒸馏损失函数实现,这个损失函数用来评价teacher model输出和student model输出的差异,因此整体的损失函数...
  • 前端优化技巧(一)

    万次阅读 2014-12-08 17:32:34
    闲暇没事整理了下前端常用的优化技巧,按目的分类如下:  在文档开头显示一个加载中图案(俗称菊花) ,然后把不重要的JS文件放在文档末尾, 给script标签添加defer属性 目的:防止JS文件阻塞页面加载 CSS...
  • 第一部分 – 20个客户端代码优化技巧 为自己写代码,为使用而编译 任何一个程序员都很清楚地知道,之所以不把自己所使用的代码作为最终的代码来交付是有它合理的原因的。写代码时最好要尽可能多写些注释,通过编排...
  • 但是,有些功能是我们用不到的,如果加载只会增加页面代码的复杂性,影响我们的调试,也不利于代码整洁。 完整的wordpress头部清理代码: remove_action( 'wp_head', 'wp_generator' ); //WordPress...
  • 第一部分 – 20个客户端代码优化技巧 为自己写代码,为使用而编译 任何一个程序员都很清楚地知道,之所以不把自己所使用的代码作为最终的代码来交付是有它合理的原因的。写代码时最好要尽可能多写些注释,通过编排...
  • C代码优化方案

    千次阅读 2015-08-18 10:17:50
    C代码优化方案 1、选择合适的算法和数据结构 2、使用尽量小的数据类型 3、减少运算的强度 (1)、查表(游戏程序员必修课) (2)、求余运算 (3)、平方运算 (4)、用移位实现乘除法运算 ...
  • 布局优化技巧笔记

    千次阅读 2016-01-22 16:14:09
    使用 Cmd + Alt + L(Mac),Ctrl+Alt+L (Windows)快捷键格式化 layout 代码,使得属性排列更加规范。 6. 资源文件命名 更多信息请参考 该网站 。 控件类型 前缀 示例 Action ...
  • C 语言高效编程与代码优化

    千次阅读 2017-02-14 20:23:23
    译文链接:... 英文原文:Writing Efficient C and C Code Optimization 翻译作者:码农网 – gunner ...应用这些经验和方法,可以帮助我们从执行速度和内存使用等方面来优化
  • 客户端代码优化

    千次阅读 2005-12-01 09:16:00
    第一部分 – 20个客户端代码优化技巧 为自己写代码,为使用而编译 任何一个程序员都很清楚地知道,之所以不把自己所使用的代码作为最终的代码来交付是有它合理的原因的。写代码时最好要尽可能多写些注释,通过编排...
  • Android最佳性能实践(四)——布局优化技巧

    万次阅读 多人点赞 2015-03-19 09:21:55
    在前面几篇文章当中,我们学习了如何通过合理管理内存,以及高性能编码技巧的方式来提升应用程序的性能。然而实际上界面布局也会对应用程序的性能产生比较大的影响,如果布局写得糟糕的话,那么程序加载UI的速度就会...
  • HTML 代码编写技巧

    千次阅读 2018-04-24 16:57:54
    1. 一定要闭合HTML标签在以往的页面源代码里,经常看到这样的语句: &lt;li&gt;Some text here. &lt;li&gt;Some new text here. &lt;li&gt;You get the idea. 也许过去我们可以容忍这样的非...
  • CSS的优化技巧

    千次阅读 2007-01-24 21:31:00
    十六、针对IE的优化 有些时候,你需要对IE浏览器的bug定义一些特别的规则,这里有太多的CSS技巧(hacks),我只使用其中的两种方法,不管微软在即将发布的IE7 beta版里是否更好的支持CSS,这两种方法都是最安全的。 1....
  • 1.代码标签输入完成后,按Tab,生成代码。 Ctrl+Alt+O 优化导入的类和包 Alt+Insert 生成代码(如get,set方法,构造函数等) 或者右键(Generate) fori/sout/psvm + Tab Ctrl+Alt+T 生成try catch 或者 Alt+enter ...
  • 前端优化之SEO技巧小谈

    千次阅读 2015-12-20 11:25:34
    SEO (Search Engine Optimization) 中文大意为“搜索引擎优化”,所谓SEO是指通过对网站的结构,代码优化以提高网站在百度,Google等搜索引擎中的排位,SEO不仅可以使网站在搜索引擎排位提示,获得更多的访问量,...
  • 代码优化总结:网站整体使用DIV+CSS精简代码结构;利用不识别代码屏蔽网站广告内容;利用权重标记优化关键词。   www.tigersko.cn:<body>下使用js输出内容,搜索引擎不识别。   三、网站内容优化: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,640
精华内容 13,856
关键字:

代码标签优化及技巧