zoukankan      html  css  js  c++  java
  • 1,拆站分析----微店手机版

      模仿就是学习能使人进步,前端技术相对于其他高级语言来说开源就是优势。

      这次我们来分析下微店的手机站是怎么做的

      地址:http://wd.koudai.com/plaza/plaza.html

      分析一个站主要从以下方面来进行

      1,html和css结构写法

      2,前端js框架和模式

      3,和后端的交互方式

           html和css

        首先打开微店网站,整站看上去是比较简约的,颜色单调,html结构不复杂。 整站内容由上面的头部+中间的搜索部分+下内容部分 三大部组成,页面是按照百分百来自适应的,并没有使用CSS3 Media Queries 来控制自适应。html代码也进行了压缩,源代码需要格式化才能看清结构。

             手机站的布局和pc端有个很明显的区别,pc站的主内容区基本上一行一行直接布局在body下面,而手机站虽然也是一行一行的但是整个内容会用一个盒子包起来

            

        html 和 css这一块没有太多的特别的,相对来说都不是太难。其中有几个地方是现在手机端比较流行的写法,就是用css3来绘制图标,不用图片。在微店首页里面的返回和商品的图标都是用css3绘制的, 用一个块级元素加上一个边框然后用css3的 transfrom的rotate设置旋转就可以了

         

     6px;
    height: 6px;
    display: block;
    border-top: #828282 solid 1px;
    border-right: #828282 solid 1px;
    content: '';
    position: absolute;
    top: 16px;
    left: 65px;
    z-index: 0;
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg);
    

         我们再来看看热门分类作者是怎么实现的,先看图

      

         作者是以左右结构来实现的,左边的ico是一个绝对定位,绝对定位是不占空间的,所以左边的ico空间是用大红色盒子的左padding来填充的,然后剩下的紫色列表就是个ul,

      然后需要做到自适应屏幕的话,那肯定给li的宽度设置个百分比,这里作者是设置的25%,因为每行放四个。

      JS

        相对于pc端来讲,移动端是能少用js就少用,css3能解决大部分的动画效果,这些就没有必要使用js去解决了,移动端的处理能力和pc端可谓是“天壤之别”。js稍微写得不好就容易造成页面卡住。

        微店的js应该是仿照jquery的语法自己重新写了个库,去掉了一些没有用的,写在库里面的基本上就是都用到了的,这样体积要比jquery小很多,我看了下,在不压缩的情况下也才25K。估计压缩之后就剩下几k的样子。

     

        var $ = function (a) {
            return a ? "object" == typeof a ? new B(a) : "string" == typeof a ? new B(0 === a.indexOf("#") ? document.querySelector(a) : document.querySelectorAll(a)) : void 0 : null
        }
    
      //所有方法都封装在方法B的属性里面, 使用美元符号选择器返回的都是B的实例
    var B = function (a) { this.get = function (i) { return i?a[i]:a; }, this.find = function (b) { return new B(b ? a.querySelector(b) : a.childer); }
         
          //这位js作者的写法都比较精辟,基础不在暂时的还真有点看不懂,像下面这个val方法,当出入的b没有值的时候很简单,就是获取value属性值,当要设置value的时候用(a.value = b, this),这样设置完之后返回自己,继续可以链式的操作
         this.val = function(b) {   return b || "string" == typeof b ? (a.value = b, this) : a.value
    
    
    
     
    },
         .......... }
    var t = $("#cid1");
      

      数据交互

      微店手机版和其他大多数的收集站类似,都是采用的jsonp来获取数据的,post数据的时候也应该是采用模拟表单来提交,这个我没有具体看了,因为js库里面有这样一段代码

      总结

      整个站不管是从html的布局css的写法和js的实现上都没有太多的新技术和难点,这种架构作者的第一目的追求的就是块。

      页面的css js 和html代码都被压缩减小体积,也没有用到任何流行的框架和js库所以基本上没有多余的代码。

      特别是js,js库方法丰富但是作者的精辟写法使体积降到了最小。

      我特意同2g网络访问多个手机商城做了比较,微店的速度确实稍占上风。


    1. max-width: 640px;
  • 相关阅读:
    CSS 3列等高
    CSS分列等高
    jQuery函数
    JQuery解析JSON数据
    2020-09-25:rust中Point是结构体类型,【let p1=Point{x:25,y:25};let p2=p1;】请问p1和p2是同一个对象吗?
    2020-09-24:jvm监控系统是通过jmx做的么?
    2020-09-23:TCP头部信息有哪些?
    2020-09-22:已知两个数的最大公约数和最小公倍数,并且这两个数不能是最大公约数和最小公倍数本身。如何判断这两个数是否存在?
    2020-09-21:已知最大公约数和最小公倍数,如何判断这两个数是否存在?
    2020-09-20:如何判断一个数是质数?
  • 原文地址:https://www.cnblogs.com/sxmny/p/4122494.html
Copyright © 2011-2022 走看看