zoukankan      html  css  js  c++  java
  • opencpu

    前端通过它调用后端的R语言,对R函数进行一个封装。

    网址:https://github.com/jeroenooms/opencpu.js

    使用的是opencpu-0.5.js,对它进行了修改。

    1、先调用call方法,在它的回调中,调用rpc和rplot。之前是通过按钮触发rpc的调用,所以没有写在call的回调中,也不会有影响。

    2、ocpu.rpc();  $('#sfp').rplot();会把返回的html直接appendTo('#sfp')。 调用方式不同

    3、自己的修改:新建了一个rplot,调用方式为ocpu.rplot(); 可以直接返回三个图片的url,之前是返回html代码。

    // call a function and return JSON, relative plot
    function rplot(fun, args, cb){
      return r_fun_call(fun, args, function(tmp){
        var Location = tmp.getLoc();
        var n = 'last';
        var result = {};
        result.pdf = Location + "graphics/" + n + "/pdf?width=11.69&height=8.27&paper=a4r";
        result.svg = Location + "graphics/" + n + "/svg?width=11&height=6";
        result.png = Location + "graphics/" + n + "/png?width=800&height=600";
        
        if(cb) cb(result);
        return result;      
      });
    }
    

    增加:ocpu.rplot = rplot; 

    call调用R函数

    var req = ocpu.call("readcsvnew", {
      file: myfile,
      header: myheader
    }, function(session) {
      session1 = session;
      $("#printlink").attr("href", session1.getLoc() + "R/.val/print")
      $("#rdalink").attr("href", session1.getLoc() + "R/.val/rda")
      $("#csvlink").attr("href", session1.getLoc() + "R/.val/csv")
    });
    
    //if R returns an error, alert the error message
    req.fail(function() {
      alert("Server error: " + req.responseText);
    });
    
    //after request complete, re-enable the button
    req.always(function() {
      $("#submitbutton").removeAttr("disabled")
    });
    

    rpc调用R函数:和call的区别,不同点是callback的参数是session,rpc的callback参数是json,调用的R函数都是自己写好的。

    var req = ocpu.rpc("demoSummary", {
      data: session1
      }, function(output) {
        $('#summary').html(output)
          //                  alert("Standard Deviation equals: " + output);
      });
    //optional
    req.fail(function() {
      alert("R returned an error: " + req.responseText);
    });
    

    R plot:$('#mydiv').rplot(fun, [, argu] [, callback])

  • 相关阅读:
    微信小程序,搜索结果关键词高亮 wxml不能动态识别html标签
    关于vue 全局loading方案
    element ui树样式问题
    Promise.all( ) 的使用
    关于form表单校验问题
    vue 异步改同步 获取结果 动态函数
    1.关于数据for循环不要用index作为key,2.面二次刷新404问题(空白) 的探讨 3. vue图片上传
    element ui点击切换皮肤
    关于element ui input、以及button样式不能覆盖的解决办法(登录页面)
    vue版本根据当前路由匹配到根父节点并且激活
  • 原文地址:https://www.cnblogs.com/wang-jing/p/4842788.html
Copyright © 2011-2022 走看看