当前位置: 首页 > news >正文

成都哪家做网站/营销型网站建设实训总结

成都哪家做网站,营销型网站建设实训总结,做视频网站视频用什么插件,wordpress登录页美化越来越多的js供我们来选择,在使用过程中插件会提供一个数据给我们进行填充.现在大部分的数据格式都是为json.这个格式就需要后端开发人员提供给前端了.web的软件无非就是后端给前端数据,然后前端再转数据类型.然而这个转换该如何来做? 矛盾的产生: 1.前端的一个插件…

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

矛盾的产生:

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

ContractedBlock.gifExpandedBlockStart.gifCode
    $.fn.setSelect = function(data){
        
var self = this;
        self.empty();
        $.each(data, 
function(i){
            
var oOption = document.createElement("option");
            oOption.innerText 
= this.text;
            oOption.value 
= this.value;
            oOption.selected 
= this.selected;
            self[
0].appendChild(oOption);
        });
    }

 

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

ContractedBlock.gifExpandedBlockStart.gifCode
var data = [  
       {text:
'',value:''},  
        {text:
'',value:''},  
        {text:
'',value:''},  
        {text:
'',value:'',selected:true}] 

 

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

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

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

ContractedBlock.gifExpandedBlockStart.gifCode
    public class Employee
    {
        
public string Name { getset; }

        
public Guid Id { getset; }

        
public bool isOnline { getset; }
    }

 

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

ContractedBlock.gifExpandedBlockStart.gifCode
List<Employee> list = GetEmployeeList();
return list.ToJSON();

 

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

ContractedBlock.gifExpandedBlockStart.gifCode
            List<Employee> list = GetEmployeeList();

            var jsonList 
= from employee in list
                           select 
new { text = employee.Name, value = employee.Id, selected = employee.isOnline };
           
return jsonList.ToJSON();

 

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

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

ContractedBlock.gifExpandedBlockStart.gifCode
var data=[{Name:'',Id:'',isOnline:""}];

 

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

 

 

ContractedBlock.gifExpandedBlockStart.gifCode
        var transdateData=[];
        $.each(data,
function() {
            
var newData={};
            newData.text
=data.Name;
            newData.value
=data.Id;
            newData.selected
=data.isOnline;
            transdateData.push(newData);
        });

 

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

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

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

ContractedBlock.gifExpandedBlockStart.gifCode
    $.fn.setSelect = function(data,formatEvent){
        
var self = this;
        self.empty();
        $.each(data, 
function(i){
            
if(formatEvent) formatEvent(this);
            
var oOption = document.createElement("option");
            oOption.innerText 
= this.text;
            oOption.value 
= this.value;
            oOption.selected 
= this.selected;
            self[
0].appendChild(oOption);
        });
    }

 

插件使用方法

 

ContractedBlock.gifExpandedBlockStart.gifCode
        var data = [  
         {name:
'xx',id:'xx'},  
         {name:
'xx',id:'xx'}];
            $(
"#xx").setSelect(data,function(e) {
                e.text
=e.name;
                e.value
=e.id;
            });

 

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

转载于:https://www.cnblogs.com/Clingingboy/archive/2008/10/09/1307116.html

http://www.lbrq.cn/news/818227.html

相关文章:

  • 邢台 网站建设/网站推广软件免费观看
  • 在线制作动画网站/推广品牌的策划方案
  • 中关村手机网站建设/千牛怎么做免费推广引流
  • 长沙网站建设做得好的/写软文
  • java网站开发新技术/卖友情链接赚钱
  • 国内出名网站建设设计公司/沈阳百度推广排名优化
  • 电商网站开发模块/长春网站快速排名提升
  • 网站改版后seo该怎么做/友谊平台
  • 爱情动作片做网站/关于市场营销的培训课程
  • 郑州好的网站建设公司/互联网销售是什么意思
  • 网站支付平台是怎么做的/外贸如何做网站推广
  • 商城网站的运营/郑州做网站的大公司
  • 网站舆论建设工作总结/竞价点击软件排名
  • 上海网站建设的价/百度推广是什么工作
  • 上海网站排名提升/2345手机浏览器
  • 游戏推广网站制作/seo能从搜索引擎中获得更多的
  • 旅游网站建设规划书模板下载/网站设计与制作
  • 去菲律宾做it网站开发/网站外贸推广
  • jsp网站建设项目实践/沈阳市网站
  • 买了香港主机后建站 写一个网站维修页面/爱站网关键词长尾挖掘
  • 网页制作大概需要多少钱/郑州seo课程
  • 沈阳网站建设报价/重庆关键词搜索排名
  • 想买个服务器做网站/如何免费做网站网页
  • 番禺有经验的网站建设/aso优化
  • 只做英文网站 域名有什么要求/昆明网络推广优化
  • 免费app软件/网站关键词排名优化电话
  • 网页制作与网站建设广州/网络游戏推广平台
  • 高质量摄影作品网站/贵州快速整站优化
  • 山东建设厅网站/游戏加盟
  • 域名举例/seo推广方法
  • CentOS8 使用 Docker 搭建 Jellyfin 家庭影音服务器
  • 机器学习之knn算法保姆级教学
  • 智慧电视:开启养老新时代
  • Linux 桌面市场份额突破 5%:开源生态的里程碑与未来启示
  • JavaScript -Socket5代理使用
  • Java 大视界 -- Java 大数据机器学习模型在金融衍生品市场波动特征挖掘与交易策略创新中的应用(363)