以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- Echarts 匿名函数与数据刷新问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=174341) |
-- 作者:douglas738888 -- 发布时间:2022/1/11 17:10:00 -- Echarts 匿名函数与数据刷新问题 例子采用,论坛中老师给出的echarts小例为参考 场景问题:用echarts做4个图表在4个盒子中,需要在js文件中用到匿名函数,避免数据污染, 在不使用异步加载$get调用json取值的情况下,怎样实现通过刷新数据从foxtable传值到js中 请蓝老师帮忙指点指点,谢谢。
参考小例的html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ECharts</title> <!-- 引入 echarts.js --> <script src="../echarts.js"></script> </head> <body> <!-- 为ECharts准备一个具备大小(宽高)的Dom --> <div id="main" style="width: 600px;height:400px;"></div> <script type="text/javascript"> (function () { //加了立即执行函数,foxtable窗口的刷新数据代码不起作用,只有图表模板,无数据 // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById(\'main\')); var data = []; //应该是未传值进来 var option = { title: { text: \'动态数据 + 时间坐标轴\' }, tooltip: { trigger: \'axis\', formatter: function (params) { params = params[0]; //var date = new Date(params.name); return \'日期:\' + params.value[0] + \' 压力: \' + params.value[1] + " 质量:" + params.value[2]; }, axisPointer: { animation: false } }, xAxis: { type: \'time\', splitLine: { show: false } }, yAxis: { type: \'value\', boundaryGap: [0, \'100%\'], splitLine: { show: false } }, series: [{ name: \'模拟数据\', type: \'line\', showSymbol: false, hoverAnimation: false, data: data }] }; setInterval(function () { myChart.setOption({ series: [{ data: data }] }); }, 2000); // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); })(); </script> </body> </html> foxtable button click刷新数据代码 Dim web = e.Form.Controls("WebBrowser1").BaseControl Dim dt As DataTable = DataTables("数据表") web.Document.InvokeScript("eval", new String() {"data=[]"}) \'清空数据 \'生成数据 For Each dr As DataRow In dt.Select("", "日期") Dim d As Date = dr("日期") web.Document.InvokeScript("eval", new String() {"data.push({name: \'" & dr("_Identify") & "\',value: [\'" & d & "\',Math.round(" & dr("压力") & "),\'" & dr("质量") & "\']});" }) Next |
-- 作者:有点蓝 -- 发布时间:2022/1/11 17:20:00 -- 把数据转换为son保存到本地的一个文件文件里,然后js使用ajax获取本地的json文件使用 |
-- 作者:douglas738888 -- 发布时间:2022/1/11 17:57:00 -- 哦,还是要用ajax请求本地服务器才行, 我偷懒,尝试使用foxtable来启动本地服务器不行,还得安装http-server,并启动; (似乎,不使用本地服务器,ajax是无法获取json数据) HttpServer.Prefixes.Add("http://127.0.0.1:5500/") 端口是被启用了,但html在浏览器打开用开发者功能,查看,jquery并未得到json HttpServer.Start() 我另外的测试项目,在VSC中启动GoLive 开启5500是可通过ajax获得json,但是关闭VSC后,端口也不启用,foxtable打开的web也无法得到json 这种情况,应该怎样处理。
|
-- 作者:有点蓝 -- 发布时间:2022/1/11 20:22:00 -- https://www.baidu.com/baidu?ie=UTF-8&word=ajax%20%E6%9C%AC%E6%9C%BA%E6%96%87%E4%BB%B6 看一看这个例子:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=103519&replyID=&skin=1
|