• json格式化,统一格式?,前端与后端的矛盾


          越来越多的js供我们来选择,在使用过程中插件会提供一个数据给我们进行填充.现在大部分的数据格式都是为json.这个格式就需要后端开发人员提供给前端了.web的软件无非就是后端给前端数据,然后前端再转数据类型.然而这个转换该如何来做?

    矛盾的产生:

    1.前端的一个插件,下面以一个简单的jQuery插件为例子,这个方法可以帮助你为一个select标签添加项

    Code

    作为这个插件的开发者,感觉这个方法很完美.它要求json的传进来的格式是这样的.

    Code

    然后我告诉后端开发人员,"你只要给我上面的格式就可以了".

    这个时候插件的开发者并没有意识到这个世界上的数据接口并不是他说了算的,后端有着其自己的业务逻辑.

    现在假设我要显示一个后端为Employee的列表

    Code

    作为后端人员,最简单的做法如下

    Code

    问题是Employee的属性不符合前端插件的要求.还好c# 3.0有匿名对象.还可以解决这个问题.现在更改后如下

    Code

    后来后端人员发现,这样的情况实在太多了,好好的一个Employee对象,里面的属性全变成text,value,selected了...

    这里便出现了矛盾,前端的接口也可以根据后端来定的。即数据也可以这样的

    Code

    前端的开发者妥协了,无奈还是接收上面的数据.然后做了一个循环,把数据转成符合插件接口的数据.

    Code

    这样的做法并不好,为了用插件在循环,数据量大了就见的出来了.当然我们的目标还是需要转换数据的,这个转换确实应该前端来做,但我们要换个方法.

    二.事件回调,格式化数据

    改进插件的使用方法,在添加dom之前,格式化数据.现在插件代码如下,添加了一个formatEvent方法

    Code

    插件使用方法

    Code

    ok,这样问题就解决了,这种方式在很多地方都可以使用.小小技巧,分享一下.

  • 相关阅读:
    使用vimdiff作为svn diff的查看代码工具
    Source Insight :在 { 后敲回车后让代码自动缩进
    关于浏览器内核的一些小知识
    Linux内存点滴 用户进程内存空间
    自定义eclipse代码模板
    sqlplus 小记
    LD_PRELOAD的用法 以及链接库的用法
    如何更方便的使用sooset
    [hadoop源码阅读][0]初衷和各种资源
    hadoop streaming和pipes资料
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/1307116.html
Copyright © 2020-2023  润新知