zoukankan      html  css  js  c++  java
  • Tornado与JS交互工作

      如下图所示,在我们进行对服务配置管理的时候,需要进行权限控制:本人添加的服务配置信自己可以修改,但不能修改其他人添加的服务信息;服务管理员和系统管理员可以修改所有服务配置信息。

    Tornado与JS交互工作

    一,添加Js控制

    为了达到这个效果,我们添加相应的js函数,在Tornado循环生成每一行的数据信息的时候,添加上相应的权限控制函数;为了有效地控制第一行的内容,需要对函数进行区分,实现代码如下所示: Tornado与JS交互工作

     代码解析:

    (1)    大部分是HTMl页面布局信息,就不多做介绍了。

    (2)    其中{% for i in range(0,servicecount) %},为tornado循环获取后端handler传递给前端的数据。

    (3)    而在每一行数据产生后,添加一个js函数,function assright{{ i }}(assign),为了区分每一行的数据,我们在函数后面添加了循环变量I,参数assign则表示是不是服务管理员和系统管理员。

    二,执行js控制

         添加完所有的js后,tornado循环生成了数据,同时添加上了所有的控制代码,如下所示:

    Tornado与JS交互工作

    相应的js函数assright0assright1,貌似很完美哟,可是页面相应的效果没有出来。经过调试发现,js代码根本没有执行,这是为什么呢?

     后来研究发现,是Tornado的原因,它只会通过{{i}}来替换变量值,而不会执行函数。要执行函数,还需要想别外的方法来处理。

    思考:

    (1)经过tornado的替换,我们发现需要的js函数都存在了。

    (2)要执行相关的函数,需要循环调用相应的函数,循环条件为数据条数。可是循环的时候要先拼出函数名assright0,assright1……然后再执行。

    (3)同时需要根据权限来传不同的参数进行控制。

    (4)如何先拼出函数名,然后再执行函数呢?在网上查询了好多地方,发现可以用函数:window[函数名](参数),来实现我们的需要。

    所以代码如下:

    function logincheck()

    {

      //检测登录

      righcontrol();

      //没用服务管理权限,则跳转到首页

      var serdmin = document.getElementByIdx_x_x("serman");

      if( serdmin.style.display=="none")

      {

        window.location.href="/";

      }

      //执行权限设置脚本函数

     

      for (i=0;i

      {

          var scfu="assright"+i;

          if($("#seruright").val()=="系统管理员" || $("#seruright").val()=="服务管理员")

          {

              window[scfu](1);

          }

          else

          {

             window[scfu](0);

          }

      }

     

    }

     window.onload=logincheck;

    通过这段代码,我们就可以完成先用Tornado替换需要的变量,组合出相关的Js函数,然后再在页面加载的时候执行函数。

    三,总结

        利用tornado框架可以轻松地开发出python语言编写的网站,不过要做到前端的效果,一定要考虑tornado的特性,以及js,jquery的执行特点,合理地使用它们,才能达到自己想要的效果。


  • 相关阅读:
    linux eclipse cdt make error 127
    centos 安装网络错误
    c++ string 结束符‘00’
    北京市工资交税情况
    gprof参数说明及常见错误
    【转】Eclipse Plugin 在 Console上打印出message
    C++做client Java做客户端传送数据
    word统计章节字数
    【转】Profiling application LLC cache misses under Linux using Perf Events
    【转】eclipse插件开发,调试运行,导出与安装
  • 原文地址:https://www.cnblogs.com/eagleking0318/p/6520729.html
Copyright © 2011-2022 走看看