zoukankan      html  css  js  c++  java
  • 海康大华安防网络摄像头Onvif、RTSP网络无插件直播流媒体服务解决方案EasyNVR表单重复提交的优化方案

    从功能上来说,EasyNVR自身因其界面美观,不仅可以单独作为音视频流媒体业务系统使用(具体功能搜索EasyNVR一定有惊喜!),也可以作为设备端与第三方平台接入使用;从界面来说,简洁,明朗,更加方便用户操作。但是作为一款软件,EasyNVR并不是全能的,在使用过程中因为业务需求不同,客户会有各种需求反馈给我们。在此过程中,我们会针对性会对相关功能进行优化和提升,满足绝大多数用户的需求。

    EasyNVR表单重复提交问题

    最近有用户反映EasyNVR前端对于表单提交这一块,用户体验不是很好。主要问题是表单在提交成功以后,提交按钮依然可以触发。

    问题截图:

    问题分析:

     $.ajax({
         type: "GET",
         url: _url + "/setbaseconfig",
         data: $this.serialize(),
      })
    

    从代码中我们不难看出,EasyNVR前端页面是通过触发Ajax来进行表单提交的。出现上图中的问题主要是由于多次的触发Ajax。因此,要规避这个问题,我们可以通过限定AJax的触发来,完成这项需求。

    解决问题:

    首先,我们找出,是什么触发这个Ajax事件的。

    $('#web-config form, #nvr-config form').validator().on('submit', function(e) {
    .........
    }
    

    通过代码不难看出,都是通过submit来触发Ajax的。

    整体的流程无非这两种:

    1.点击提交按钮->触发ajax提交数据->提交成功->屏蔽提交按钮防止再次提交;

    2.点击提交按钮->触发ajax提交数据->提交失败->保持提交按钮状态供再次提交;

    Ajax提供的操作空间还是相当完善的。

    我们都知道ajax是执行异步网络请求,我们可以在请求前,请求后,请求动作完成,请求动作成功、请求动作失败等都有对应的函数来进行操作。ajax的这些特征,就更加的方便我们来操作了。

    首先我们抛开提交的内容,从提交的过程来说,在EasyNVR配置表单中我们没有只需要注重ajax请求动作的成功和失败;我们主要调用的函数就是success: function、error: function;请求成功后在success中将提交按钮屏蔽起来,如果请求失败,提示出错误原因,保持提交按钮的可以提交的状态。

    HTML中的input元素、button元素、option元素等都具有一个disabled属性。当赋予该属性时该元素将变得不可交互。可以用这个属性来屏蔽提交按钮。

     $.ajax({
    	type: "GET",
        url: _url + "/setbaseconfig",
        data: $this.serialize(),
     success: function(data) {
             reload();
             $.gritter.add({
                 text: '配置成功,重启后生效!',
                 class_name: 'gritter-info'
            });
    		$this.find("button[type=submit]").prop("disabled", true);
                        },
     error: function(e){
    	     console.log(e)
    		$this.find("button[type=submit]").prop("disabled", false);
    
       }

  • 相关阅读:
    PIL库,图像处理第三方库
    文件指针
    机器学习之KNN---k最近邻算法-机器学习
    python 中的内置高级函数
    sklearn中standardscaler中fit_transform()和transform()有什么区别,应该怎么使用?
    python中导入sklearn中模块提示ImportError: DLL load failed: 找不到指定的程序。
    pandas中读取文件报错
    beacon帧字段结构最全总结(一)——beacon基本结构
    python中实例方法,类方法,静态方法简单理解
    一种logging封装方法,不会产生重复log
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/12017278.html
Copyright © 2011-2022 走看看