zoukankan      html  css  js  c++  java
  • 细节总结

     1:如何检测一个变量是字符串?如何检测为对象类型呢?

    复制代码
    1:使用typeOF检测字符串
    var str; alert(typeOf str) 2:给测试变量加上一个空白字符,然后与测试变量做全等判断,就可以得出这个变量是否是字符串。
    <script type="text/javascript">
      var str='ss';
      var stt=str+'';
      alert(str==stt); //输出为真
    </script
    复制代码

        2:对于页面加载缓慢,如何进行优化,解决途径是什么

        我是先讲页面加载缓慢是那些原因造成的,比如:

        A:后端的问题。

            一般网页第一个请求是动态请求的概率比较大,如果这个请求特别耗时,那肯定不是前端的责任。

       B:请求过多

           数一下瀑布图总共有多少行,onload之前如果有几百行,那么请求就太多了。一下子加载那么多资源造成拥挤。css,

       js该合并的合并,图标该精灵的精灵,使用字体图标也很好。还有,有些不重要的东西不用放到onload之前加载,

       放到后面也一样。  网页发请求数越少越好。

          比如:HTML的话可以从script标签这里说,比如动态加载script标签,异步加载script标签(IE:defer、标准:async)

       还有就是css阻塞和js阻塞问题,将script标签放置于</body>之前就可以,行为层与变现层进行分开。

      C:某一个部分请求的时间花费过长。

         请求比其他请求的时间大出一个数量级,这种情况一般是因为某一个资源太慢了,导致网页整体变慢,资源慢的原因可能是:

         a)资源在第三方站点上,他们很慢;

         b)这个资源太大了;

         c)这个 资源使用的域名有问题。

      D:网络问题

    当网页加载很慢的时候,应如何分析其原因并解决问题?

      

      仔细看一下一个单独的http请求,他们会分为好几段,分别是域名解析、建立连接、发送请求、等待响应和接收数据几个阶段。
    理论上域名解析和建立连接应该占用的时间很小才对,主要的时间应该用在后面几个阶段上。上图中,浅灰色和灰色分别代表域名解析和建立连接。
    可以看出这两个请求中花费在网络层上的时间太长了,超过总时间的一半还要多。网络层时间过长除了可能和底层网络有关之外,还可能和站点的服务端性能有关(后端RD的事情哦)。
    当然,如果这种情况发生在向第三方站点发送的请求上(实际上也经常发生),建议取消或者更换某些站点功能从而避免这样的请求了。

     E:接收数据时间过长

         上面说了,http请求的大部分时间应该花在后面几个阶段,比如等待响应和接收数据。但是,如果接收数据的时间太长了

     长到数百毫秒甚至以秒计算的时候。那也是有问题的。这种情况一般是因为下载的内容太重了,例如大图片、大脚本等。 

     这类问题可以使用GZIP压缩、图片压缩或者JS/CSS的minify等 手段来解决。

      还有像CSS Sprites,合并CSS文件等方案。

     F:js阻塞请求
         当网页加载很慢的时候,应如何分析其原因并解决问题?
         
          图中两个连续的请求之间出现了一个很大的空隙,为啥会出现这个空隙呢?是因为写的js性能有问题,解析执行js花了很
    长时间,导致这段时间的资源加载都被阻塞住了。
     
    G:如果以上都没有
       当网页加载很慢的时候,应如何分析其原因并解决问题?
        翻看每个http请求,仔细研究每个请求头响应头,看看是不是没有设置缓存啦,图片优化的不够好之类的。可以先找个工具
    分析一下,比如:http://speed.mmtrix.com/,问题一目了然。
     
        
     
    H:采用CDN托管
        CDN的全称是Content Delivery Network,即内容分发网络。CDN的通俗理解就是网站加速,CPU均衡负载,可以解决
    跨运营商, 跨地区,服务器负载能力过低,带宽过少等带来的网站打开速度慢等问题。
        CDN的基本思路是尽可能避开互联网上有可能影响 数据传输速度和稳定性的瓶颈和环节,使内容传输的更
    快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络。
        CDN 系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合
    信息将用户的请求重新导向离用户最近的服务节点上。 其目的是使用户 可就近取得所需内容,解决
     Internet网络拥挤的状况,提高用户访问网站的响应速度。
      
    M:利用缓存方案
       服务端缓存是通过将相同数据保存下来,当访问用户请求相同内容时,不再重新去数据库查询数据,而是将之前保存在
    服务器的数据响应给用户这样就加快了网站页面加载速度,但是临时保存会占用部分服务器资源。其本质是通过空间换取
    时间,提高网页加载速度。页面缓存指的是将用户请求过的页面完整保存下来,有相同请求时直接响应给用户,此方式数
    据量是最大的;页面部分缓存是指输出缓存页面的某些部分,而不是缓存整个页面内容。

      实现页面部分缓存有 两种机制:

      第一种:对用户控件进行缓存配置

         此种是将页面中需要缓存的部分置于用户控件(.ascx文件)中,并且为用户控件设置缓存功能

    (包含用户控件的ASP.NET页面可设置也可不 设置缓存)。

         这就是通常所说的“控件缓存”。

         主要包括以下3种方法:

         一:使用@ OutputCache指令以声明方式为用户控件设置缓存功能,

         二:在代码隐藏文件中使用PartialCachingAttribute类设置用户控件 缓存;

         三:使用ControlCachePolicy类以编程方式指定用户控件缓存设置。

      第二种:“缓存后替换”的方法。

     该方法与控件缓存正好 相反,将页面中的某一部分设置为不缓存,因此,尽管缓存了整个页面,

    但是当再次请求该页时,将重新处理那些没有设置为缓存的内容。

  • 相关阅读:
    fzu 2138
    hdu 1598 暴力+并查集
    poj 1734 floyd求最小环,可得到环上的每个点
    floyd求最小环 模板
    fzu 2087并查集的运用求最小生成树的等效边
    hdu 2586 lca在线算法(朴素算法)
    CF 602 D. Lipshitz Sequence 数学 + 单调栈 + 优化
    Problem 2238 Daxia & Wzc's problem 1627 瞬间移动
    D. Tavas and Malekas DFS模拟 + kmp + hash || kmp + hash
    K-th Number 线段树的区间第K大
  • 原文地址:https://www.cnblogs.com/canning-gao/p/5653701.html
Copyright © 2011-2022 走看看