详解ECharts使用心得总结


Posted in Javascript onDecember 06, 2016

前言

上周项目组要临时给客户做一个演示的原型,首页设计的是一个中国地图,本来打算用谷歌的地图,但是,做出来之后,整体的效果看起来太差了,最后就在网上搜相关的地图呈现的控件,然后就找到了这个ECharts报表呈现组件,挺不错的一个组件,而且地图数据都是离线的,真心很赞。但是,使用起来却颇费了一番工夫。所以就把使用中的一些心得体会跟大家分享一下。

1.    插件的下载

以下是ECharts的下载链接,需要注意的是ECharts内部也是依赖于另一个插件的叫ZRender,当然对于大部分图表而言不需要ZRender的,但是对于地图控件及其他复杂的呈现控件而已都是需要ZRender的。为了避免不要的问题出现,建议大家在下载ECharts时同时也要下载ZRender。

ECharts下载地址: http://echarts.baidu.com/

ZRender下载地址:http://ecomfe.github.io/zrender/index.html

下载之后解压各自的文件目录结构如下:

ECharts:

详解ECharts使用心得总结      

ZRender:

详解ECharts使用心得总结

2.    插件的引用

首先,新建一个Web应用程序,然后添加刚刚下载的文件,具体的目录结构如下:

详解ECharts使用心得总结

这里有以下几点需要说明:

1、所有的跟ECharts有关的文件全部都在echarts文件夹下

2、echarts文件夹的内容分为两部分

1)  一部分是以echarts开头的js文件,这些文件全部来自于1.中的ECharts文件目录中的js文件夹下的文件,也就是1.中的图中红框标注的js下的文件。如下:

详解ECharts使用心得总结

2) 另一部分是一个名为zrender的文件夹,这里需要特别注意的是该文件夹的命名必须为zrender,因为在echarts的js文件中对zrender的引用都是以zrender为根目录的,zrender文件夹的内容即为1.中zrender文件目录中的src文件夹下的内容,如下:

详解ECharts使用心得总结

3.    在页面中的具体使用

按照上边的步骤配置过之后,我们就可以在页面中引用了,这里我主要是演示地图控件的使用方式,因为地图的引用跟其他的基本图形的引用不太一样。其他的图形的呈现也会做一个简要的演示。

3.1 MapChart

首先在跟2中的echarts文件夹同一个目录(也就是Modules文件夹)下添加一个aspx页或html页,需要注意的是,如果是在aspx页中使用echarts时,需要把要渲染的div放在form标签之外,否则图形是显示不出来的。

3.1.1 在head标签中添加对echarts的引用如下:

<head runat="server"> 
  <title></title> 
  <script src="echarts/esljs" type="text/javascript"></script> 
</head>

3.1.2 在body标记中,form标记之外,添加一个div,用来做图表渲染的容器。如下:

<body> 
 
<div id="main"style="height:500px;border:1px solid #ccc;padding:10px;"></div> 
 
…………… 
 
…………… 
 
</body>

3.1.3 在3.1.3中添加的div标记下,添加如下的js代码段,如下:

<script type="text/javascript"> 
 
    //为模块加载器配置echarts的路径,这里主要是配置map图表的路径,其他的图表跟map的配置还不太一样,下边也会做另一种类型的图表事例。 
这里引用的主要是echarts文件夹下的echarts-map文件,而其他类型的图表引用的都是echarts文件夹下的echarts文件。 
 
    requireconfig({ 
 
      paths: { 
 
        echarts:'/echarts/echarts', 
 
        'echarts/chart/map':'/echarts/echarts-map' 
 
      } 
 
    }); 
 
   //动态加载echarts,在回掉函数中使用,要注意保持按需加载结构定义图表路径 
 
    require( 
 
    [ 
 
      'echarts', 
 
      'echarts/chart/map' 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ecinit(documentgetElementById('main')); 
 
      //option主要是图标的一些设置,这不是这篇文章的重点,关于具体的设置可以参考官方的文档说明文档 
 
option= { 
 
        title: { 
 
          text:'iphone销¨²量¢?', 
 
          subtext:'纯ä?属º?虚¨¦构1', 
 
          x:'center' 
 
        }, 
 
        tooltip: { 
 
          trigger:'item' 
 
        }, 
 
        legend: { 
 
          orient:'vertical', 
 
          x:'left', 
 
          data: ['iphone3','iphone4','iphone5'] 
 
        }, 
 
        dataRange: { 
 
          min:0, 
 
          max:2500, 
 
          text: ['高?','低̨ª'],      // 文?本À?,ê?默?认¨?为a数ºy值¦Ì文?本À? 
 
          calculable:true, 
 
          textStyle: { 
 
            color:'orange' 
 
          } 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          orient:'vertical', 
 
          x:'right', 
 
          y:'center', 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        series: [ 
 
    { 
 
      name:'iphone3', 
 
      type:'map', 
 
      mapType:'china', 
 
      selectedMode: 'single', 
 
      itemStyle: { 
 
        normal: { label: { show:true },color:'#ffd700' },// for legend 
 
        emphasis: { label: { show:true} } 
 
      }, 
 
      data: [ 
 
        { name:'北À¡À京?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'天¬¨¬津¨°',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'上¦?海¡ê',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'重?庆¨¬',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'河¨®北À¡À',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'河¨®南?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'云?南?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'辽¢¨¦宁t',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'黑¨²龙¢¨²江-',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'湖t南?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'安ã2徽?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'山¦?东?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'新?疆?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'江-苏?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'浙?江-',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'江-西¡Â',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'湖t北À¡À',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'广?西¡Â',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'甘¨º肃¨¤',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'山¦?西¡Â',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'内¨²蒙¨¦古?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'陕¦?西¡Â',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'吉a林¢?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'福¡ê建¡§',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'贵¨®州Y',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'广?东?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'青¨¤海¡ê',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'西¡Â藏?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'四?川䡧',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'宁t夏?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'海¡ê南?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'台¬¡§湾ª?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'香?港?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'澳ã?门?',value:Mathround(Mathrandom() *1000) } 
 
      ] 
 
    }, 
 
    { 
 
      name:'iphone4', 
 
      type:'map', 
 
      mapType:'china', 
 
      selectedMode: 'single', 
 
      itemStyle: { 
 
        normal: { label: { show:true },color:'#ff8c00' },// for legend 
 
        emphasis: { label: { show:true} } 
 
      }, 
 
      data: [ 
 
        { name:'北À¡À京?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'天¬¨¬津¨°',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'上¦?海¡ê',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'重?庆¨¬',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'河¨®北À¡À',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'安ã2徽?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'新?疆?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'浙?江-',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'江-西¡Â',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'山¦?西¡Â',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'内¨²蒙¨¦古?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'吉a林¢?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'福¡ê建¡§',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'广?东?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'西¡Â藏?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'四?川䡧',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'宁t夏?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'香?港?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'澳ã?门?',value:Mathround(Mathrandom() *1000) } 
 
      ] 
 
    }, 
 
    { 
 
      name:'iphone5', 
 
      type:'map', 
 
      mapType:'china', 
 
      selectedMode: 'single', 
 
      itemStyle: { 
 
        normal: { label: { show:true },color:'#da70d6' },// for legend 
 
        emphasis: { label: { show:true} } 
 
      }, 
 
      data: [ 
 
        { name:'北À¡À京?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'天¬¨¬津¨°',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'上¦?海¡ê',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'广?东?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'台¬¡§湾ª?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'香?港?',value:Mathround(Mathrandom() *1000) }, 
 
        { name:'澳ã?门?',value:Mathround(Mathrandom() *1000) } 
 
      ] 
 
    } 
  ] 
      }; 
       //以下的这段代码主要是用来处理用户的选择,应用场景是可以做地图的交互,比如点击地图上的某一个省,获取相应的省的指标变化等。 
       //需要特别注意的是,如果需要点击某一省作地图的操作交互的话,还需要为series属性的每一项添加一个selectedMode属性,这里的属性值为 'single'即单选,也可多选 
  varecConfig= require('echarts/config'); 
      myCharton(ecConfigEVENTMAP_SELECTED,function (param) { 
        varselected=paramselected; 
        varmapSeries=optionseries[0]; 
        vardata= []; 
        varlegendData= []; 
        varname; 
        for (varp=0,len=mapSeriesdatalength; p<len; p++) { 
          name=mapSeriesdata[p]name; 
          mapSeriesdata[p]selected=selected[name]; 
          if (selected[name]) { 
            alert(name); //这里只是简单的做一个事例说明,弹出用户所选的省,如需做其他的扩展,可以在这里边添加相应的操作  
 
          } 
        } 
      });         
      myChartsetOption(option); 
    } 
  ); 
  </script>

3.1.4  完成以上操作之后,效果如下图所示:

详解ECharts使用心得总结

3.2 LineChart

除了地图图表之外的其他的图标的使用方式都差不多。事实上其他的图表跟地图图表的区别在于对配置文件的引用。这里只做一个折线图的示例,其它的示例都是一样的。

3.2.1 跟3.1.1一样,引入echarts脚本

3.2.2 跟3.2.2一样,添加渲染图表的div容器

3.2.3 在3.2.2添加的div下添加如下js代码块

<scripttype="text/javascript"> 
 
    requireconfig({ 
 
      paths: { 
 
        echarts:'/echarts/echarts', 
 
        'echarts/chart/bar':'/echarts/echarts',//这里需要注意的是除了mapchart使用的配置文件为echarts-map之外, 
其他的图形引用的配置文件都为echarts,这也是一般的图形跟地图的区别 
 
        'echarts/chart/line':'/echarts/echarts' 
 
      } 
 
    }); 
 
    require( 
 
    [ 
 
      'echarts', 
 
      'echarts/chart/bar', 
 
      'echarts/chart/line' 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ecinit(documentgetElementById('main')); 
 
      option= { 
 
        tooltip: { 
 
          trigger:'axis' 
 
        }, 
 
        legend: { 
 
          data: ['邮®¨º件t营®a销¨²','联¢a盟?广?告?','视º¨®频¦Ì广?告?','直¡À接¨®访¤?问¨º','搜?索¡Â引°y擎?'] 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            magicType: ['line','bar'], 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        calculable:true, 
 
        xAxis: [ 
 
    { 
 
      type:'category', 
 
      boundaryGap:false, 
 
      data: ['周¨¹一°?','周¨¹二t','周¨¹三¨y','周¨¹四?','周¨¹五?','周¨¹六¢¨´','周¨¹日¨?'] 
 
    } 
 
  ], 
 
        yAxis: [ 
 
    { 
 
      type:'value', 
 
      splitArea: { show:true } 
 
    } 
 
  ], 
 
        series: [ 
 
    { 
 
      name:'邮®¨º件t营®a销¨²', 
 
      type:'line', 
 
      stack:'总Á¨¹量¢?', 
 
      data: [120,132,101,134,90,230,210] 
 
    }, 
 
    { 
 
      name:'联¢a盟?广?告?', 
 
      type:'line', 
 
      stack:'总Á¨¹量¢?', 
 
      data: [220,182,191,234,290,330,310] 
 
    }, 
 
    { 
 
      name:'视º¨®频¦Ì广?告?', 
 
      type:'line', 
 
      stack:'总Á¨¹量¢?', 
 
      data: [150,232,201,154,190,330,410] 
 
    }, 
 
    { 
 
      name:'直¡À接¨®访¤?问¨º', 
 
      type:'line', 
 
      stack:'总Á¨¹量¢?', 
 
      data: [320,332,301,334,390,330,320] 
 
    }, 
 
    { 
 
      name:'搜?索¡Â引°y擎?', 
 
      type:'line', 
 
      stack:'总Á¨¹量¢?', 
 
      data: [820,932,901,934,1290,1330,1320] 
 
    } 
 
  ] 
 
      };           
 
  
 
      myChartsetOption(option); 
 
    } 
 
  ); 
 
  </script> 
 
  
 
  
 
  <divid="main1"style="height:500px;border:1px solid #ccc;padding:10px;"></div>   
 
  <scripttype="text/javascript"> 
 
    requireconfig({ 
 
      paths: { 
 
        echarts:'/echarts/echarts', 
 
        'echarts/chart/bar':'/echarts/echarts', 
 
        'echarts/chart/line':'/echarts/echarts' 
 
      } 
 
    }); 
 
    require( 
 
    [ 
 
      'echarts', 
 
      'echarts/chart/bar', 
 
      'echarts/chart/line' 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ecinit(documentgetElementById('main1')); 
 
      option= { 
 
        title: { 
 
          text:'未¡ä来¤¡ä一°?周¨¹气?温?变À?化¡¥', 
 
          subtext:'纯ä?属º?虚¨¦构1' 
 
        }, 
 
        tooltip: { 
 
          trigger:'axis' 
 
        }, 
 
        legend: { 
 
          data: ['最Á?高?气?温?','最Á?低̨ª气?温?'] 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            magicType: ['line','bar'], 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        calculable:true, 
 
        xAxis: [ 
 
    { 
 
      type:'category', 
 
      boundaryGap:false, 
 
      data: ['周¨¹一°?','周¨¹二t','周¨¹三¨y','周¨¹四?','周¨¹五?','周¨¹六¢¨´','周¨¹日¨?'] 
 
    } 
 
  ], 
 
        yAxis: [ 
 
    { 
 
      type:'value', 
 
      axisLabel: { 
 
        formatter:'{value} °?C' 
 
      }, 
 
      splitArea: { show:true } 
 
    } 
 
  ], 
 
        series: [ 
 
    { 
 
      name:'最Á?高?气?温?', 
 
      type:'line', 
 
      itemStyle: { 
 
        normal: { 
 
          lineStyle: { 
 
            shadowColor:'rgba(0,0,0,4)' 
 
          } 
 
        } 
 
      }, 
 
      data: [11,11,15,13,12,13,10] 
 
    }, 
 
    { 
 
      name:'最Á?低̨ª气?温?', 
 
      type:'line', 
 
      itemStyle: { 
 
        normal: { 
 
          lineStyle: { 
 
            shadowColor:'rgba(0,0,0,4)' 
 
          } 
 
        } 
 
      }, 
 
      data: [-2,1,2,5,3,2,0] 
 
    } 
 
  ] 
 
      };           
 
      myChartsetOption(option); 
 
    } 
 
  ); 
 
  </script> 
 
  
 
  
 
  <divid="main2"style="height:500px;border:1px solid #ccc;padding:10px;"></div>   
 
  <scripttype="text/javascript"> 
 
    requireconfig({ 
 
      paths: { 
 
        echarts:'/echarts/echarts', 
 
        'echarts/chart/bar':'/echarts/echarts', 
 
        'echarts/chart/line':'/echarts/echarts' 
 
      } 
 
    }); 
 
    require( 
 
    [ 
 
      'echarts', 
 
      'echarts/chart/bar', 
 
      'echarts/chart/line' 
 
    ], 
 
    function (ec) { 
 
      varmyChart=ecinit(documentgetElementById('main2')); 
 
      option= { 
 
        title: { 
 
          text:'某3楼£¤盘¨¬销¨²售º?情¨¦况?', 
 
          subtext:'纯ä?属º?虚¨¦构1' 
 
        }, 
 
        tooltip: { 
 
          trigger:'axis' 
 
        }, 
 
        legend: { 
 
          data: ['意°a向¨°','预¡è购o','成¨¦交?'] 
 
        }, 
 
        toolbox: { 
 
          show:true, 
 
          feature: { 
 
            mark:true, 
 
            dataView: { readOnly:false }, 
 
            magicType: ['line','bar'], 
 
            restore:true, 
 
            saveAsImage:true 
 
          } 
 
        }, 
 
        calculable:true, 
 
        xAxis: [ 
 
    { 
 
      type:'category', 
 
      boundaryGap:false, 
 
      data: ['周¨¹一°?','周¨¹二t','周¨¹三¨y','周¨¹四?','周¨¹五?','周¨¹六¢¨´','周¨¹日¨?'] 
 
    } 
 
  ], 
 
        yAxis: [ 
 
    { 
 
      type:'value' 
 
    } 
 
  ], 
 
        series: [ 
 
    { 
 
      name:'成¨¦交?', 
 
      type:'line', 
 
      smooth:true, 
 
      itemStyle: { normal: { areaStyle: { type:'default'}} }, 
 
      data: [10,12,21,54,260,830,710] 
 
    }, 
 
    { 
 
      name:'预¡è购o', 
 
      type:'line', 
 
      smooth:true, 
 
      itemStyle: { normal: { areaStyle: { type:'default'}} }, 
 
      data: [30,182,434,791,390,30,10] 
 
    }, 
 
    { 
 
      name:'意°a向¨°', 
 
      type:'line', 
 
      smooth:true, 
 
      itemStyle: { normal: { areaStyle: { type:'default'}} }, 
 
      data: [1320,1132,601,234,120,90,20] 
 
    } 
 
  ] 
 
      };           
 
      myChartsetOption(option); 
 
    } 
 
  ); 
 
  </script>

3.2.4 完成以上操作之后效果图如下:

详解ECharts使用心得总结

好了,今天就总结到这里了,希望能给大家带来一些帮助。这里主要是介绍地图控件的使用,因为其官方文档上关于路径的配置写的很不清楚,所以才会想把这些走的弯路给总结一下。对于其他的图表控件的使用都很简单,大家可以参考官方的文档。http://echarts.baidu.com/doc/doc.html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 数组克隆方法 小结
Mar 20 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
Jul 31 Javascript
JavaScript语言核心数据类型和变量使用介绍
Aug 23 Javascript
jquery选择器之属性过滤选择器详解
Jan 27 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
Sep 01 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
Aug 10 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
Oct 24 Javascript
原生JS简单实现ajax的方法示例
Nov 29 Javascript
详解JavaScript的数据类型以及数据类型的转换
Apr 20 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
Aug 20 Javascript
javascript实现扫雷简易版
Aug 18 Javascript
node中短信api实现验证码登录的示例代码
Jan 20 Javascript
jQuery实现删除li节点的方法
Dec 06 #Javascript
详解springmvc 接收json对象的两种方式
Dec 06 #Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
Dec 06 #Javascript
jQuery File Upload文件上传插件使用详解
Dec 06 #Javascript
vue2.0开发实践总结之入门篇
Dec 06 #Javascript
微信小程序中单位rpx和rem的使用
Dec 06 #Javascript
JavaScript定时器实现的原理分析
Dec 06 #Javascript
You might like
什么是调频(FM)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
PHP4和PHP5共存于一系统
2006/11/17 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
php中in_array函数用法分析
2014/11/15 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
JS 密码强度验证(兼容IE,火狐,谷歌)
2010/03/15 Javascript
JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
2012/08/14 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
JavaScript多线程详解
2015/08/12 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
2016/02/27 Javascript
一个字符串中出现次数最多的字符 统计这个次数【实现代码】
2016/04/29 Javascript
基于jQuery实现中英文切换导航条效果
2016/09/18 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
工厂模式在JS中的实践
2017/01/18 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
在Vue中使用HOC模式的实现
2020/08/23 Javascript
python映射列表实例分析
2015/01/26 Python
python3实现全角和半角字符转换的方法示例
2017/09/21 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
Django实现网页分页功能
2019/10/31 Python
如何使用Python脚本实现文件拷贝
2019/11/20 Python
学校介绍信范文
2014/01/14 职场文书
质量安全标语
2014/06/07 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
合理化建议书
2015/02/04 职场文书