美文网首页
项目中前端开发碰到的问题小结

项目中前端开发碰到的问题小结

作者: _信仰zmh | 来源:发表于2018-03-21 19:41 被阅读1641次

前端规范很重要,养成一个良好的代码规范对日后的维护非常方便,这里总结下碰到的问题,写在这里。

我自己想到的几点关于代码规范

  • 必要的注释,方便自己方便他人。

  • 命名尽量要有意义,无论是变量还是函数,尽量用英文单词,多个单词使用【动词+名词】格式,驼峰写法。

  • 代码缩进,既美观,又方便快捷。

  • 捕捉接口返回数据是否成功,若成功则处理,否则提示错误。不要不管返回的数据是否正确就处理,导致一些方法报错,如join()、split()。

  • 理清逻辑之后,按顺序在js中写要用的方法。

  • 变量、常量初始化、全局函数尽量放在最上层。

新版v6调用接口规范

之前调用接口相对来说繁琐了点,v6版本之后,调用接口,只需要serciceId和相关参数即可,十分方便,以调用获取租户信息接口为例:

 //获取当前登陆账户的租户名、类型
            self.getCustomerName = function(){
                var eiInfo = new EiInfo();
                eiInfo.set("serviceId","OC00_GETTENANTBYID");
                //eiInfo.set("tenantID",self.currentCustomerId);
                eiInfo.set("tenantID",_user.customerId);
                eiInfo.set("showCount",true);
                eihttp.send({service: 'BC20',method: 'invokeBWService',eiinfo: eiInfo}, getCustomerNameByIDSuccess, error);
            }
            function getCustomerNameByIDSuccess(eiInfo){
                //console.log("获取租户名-------->",JSON.stringify(eiInfo));
                //var status = eiInfo.status;
                // 获取最外层的status使用 eiInfo.getStatus() 或eiInfo.status;
                // 内层的是eiInfo.get("status");

                var status = eiInfo.getStatus();
                if(status=='0'){
                    // 展示当前租户名、资源组类型
                    self.currentCustomerName = eiInfo.get("tenantName");
                    self.currentCustomerGroupType = eiInfo.get("tenantGroupType");
                    self.showDefaultInfo = self.currentCustomerName + "  " + "("+  self.currentCustomerGroupType +")";
                }else{
                    toaster.error({title: "失败" , body: "获取当前登陆租户名称失败!"} );
                    console.log("获取当前登陆租户名失败---->",eiInfo.msg);
                }
            }
            function error(){
                console.log("eihttp error---->");
            }
            self.getCustomerName();

eihttp.send({service: 'BC20',method: 'invokeBWService',eiinfo: eiInfo}, onSuccess, onError);接口即使错误,也并不会进入onError回掉函数中

前期我以为eihttp发送请求的时候,后面跟的是两个回掉函数,一个成功回掉,一个失败回掉。

  • 如果成功就会执行onSuccess这个成功回掉函数中,

  • 如果失败就会执行onError函数中。

理论上是没有问题的,但是后期我发现,只要是接口异常的,它都不会进入onError函数中,这也是后台问我前台报了什么错,我只能说出来现象,却说不出来具体的报错信息。

因为即使我在onErrpr中做了捕捉错误,但是它并不会进到onError,onError里面做的操作都是白搭。

  • 后来发现,无论成功与否,接口都会返回给我数据,只是我要通过判断其状态,如果status为0,则成功,否则则失败。

代码如下:

function onSuccess(eiInfo){
                // 先看一下完整的数据
                console.log("接口返回outInfo数据-------->",JSON.stringify(eiInfo));
                // 拿到状态值
                var status = eiInfo.getStatus();
                
                // 状态为0则成功,否则失败
                if(status=='0'){
                    // 成功拿到数据,做的操作
                  
                }else{
                    //失败,提示错误,失败时的操作
                    toaster.error({title: "失败" , body: "接口掉用失败!"} );
                    console.log("errorMsg---->",eiInfo.msg);
                }
            }
  • 通过打印eiInfo中的msg属性,就可以捕获到后台报错的详细信息了,然后你懂的,改bug!

在取状态status时要注意的问题

一般后台返回的status属性是与block块放在平级的,两者是平行关系。

如果外层评级中有status,同时block块中也有status,这样就不能直接使用get("status")方法。

【注意】:

  • eiInfo.get("status");取到的是内层block中的status属性。
  • eiInfo.status; 取到的是外层平级status
  • eiInfo.getStatus(); 取到的是外层平级中的status

所以取外层的status状态值,使用以下两种写法:

            var status = eiInfo.status;
             // 获取最外层的status使用 eiInfo.getStatus() 或eiInfo.status;
             // 内层的是eiInfo.get("status");
            var status = eiInfo.getStatus();

未完待续...

相关文章

  • 项目中前端开发碰到的问题小结

    前端规范很重要,养成一个良好的代码规范对日后的维护非常方便,这里总结下碰到的问题,写在这里。 我自己想到的几点关于...

  • 【Web前端】npm使用总结

    这里归总下用npm来搭建前端项目中的一些感受 依赖包的管理问题 团队开发的话,必然会碰到这种依赖包的版本问题,团队...

  • 数组去重

    去重是开发中经常会碰到的一个热点问题,不过目前项目中碰到的情况都是后台接口使用SQL去重,简单高效,基本不会让前端...

  • js解决跨域问题

    与后台开发联调接口时经常碰到跨域的问题,有两个解决的办法:让后端开发去掉跨域参数;前端自己解决。 前端解决接口联调...

  • vue项目中碰到的问题

    vue项目中碰到的问题 路由懒加载写法: Vue 数组/对象更新 视图不更新深拷贝对象或者数组,视图会进行更新对象...

  • iOS-UIWebView导入本地的HTML,CSS、JS不显示

    项目中难免会遇到混合开发,前端给你的html导入项目中,css、js没了,这就是路径的问题。 之前我们将文件、类拖...

  • 基于nodejs的跨域代理

    对于前端开发的童鞋,如果涉及到和后端协同开发,有可能会碰到跨域的问题,对于解决跨域的问题,目前有几种解决方式,例如...

  • jQuery滚动到页面指定位置

    文章作者:Tyan博客:noahsnail.com 在前端的页面开发中,经常会碰到页面跳转问题,这个跳转指的是页面...

  • 用apache解决前端开发跨域问题

    项目中前后端分离,依据接口契约进行开发。前端开发的时候,访问mock service.遇到的问题是跨域,解决办法是...

  • 前端面试重点——居中问题

    前端面试重点——居中问题 在页面布局开发中,居中问题是我们经常碰到的问题,掌握居中问题对于解决页面布局非常重要,同...

网友评论

      本文标题:项目中前端开发碰到的问题小结

      本文链接:https://www.haomeiwen.com/subject/yirnqftx.html