主页 > 知识库 > 利用noesis.Javascript开源组件.Net中执行javascript脚本

利用noesis.Javascript开源组件.Net中执行javascript脚本

热门标签:宿迁智能外呼系统排名 400电话办理信任翰诺科技 广州销售外呼系统定制 福州人工智能电销机器人加盟 电销机器人 数据 ai电销机器人对贷款有帮助吗 云狐人工智能电话机器人 地图标注多少钱一张 怎样给陕西地图标注颜色

界面如下:

然后,click filter button后的UI:

看,筛选出来了,代码如下(js能调C#写的UserInfo类的各个属性)

复制代码 代码如下:

public class UserInfo
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int Age { get; set; }
        public override string ToString()
        {
            return string.Format("{0}, {1}: {2}", FirstName, LastName, Age);
        }
    }

private void btnSearch_Click(object sender, EventArgs e)
        {
            ListUserInfo> users = FilterUsers(txtFilter.Text.Trim());
            lstUsers.DataSource = users;
        }

        private ListUserInfo> FilterUsers(string jsFilter)
        {
            ListUserInfo> results = new ListUserInfo>();
            if (jsFilter.Trim().Length == 0)
                return this.users;

            try
            {
                using (JavascriptContext context = new JavascriptContext())
                {
                    foreach (UserInfo user in this.users)
                    {
                        context.SetParameter("user", user);
                        context.SetParameter("isInclude", false);
                        string js = string.Format(@"
                                                if({0})
                                                    isInclude=true;
                                                else
                                                    isInclude=false;", jsFilter);
                        context.Run(js);
                        bool isInclude = (bool)context.GetParameter("isInclude");
                        if (isInclude)
                            results.Add(user);
                    }
                }
            }
            catch
            {
                txtFilter.Focus();
                txtFilter.SelectAll();
                return this.users;
            }

            return results;
        }

我们来看看效率:

复制代码 代码如下:

private void btnTest_Click(object sender, EventArgs e)
        {
            using (JavascriptContext context = new JavascriptContext())
            {
                Stopwatch sw = new Stopwatch();
                sw.Start();
                int i=1000000;
                while(i-- > 0)
                {
                    context.SetParameter("ii", 1);
                    context.SetParameter("jj", 2);
                    context.SetParameter("sum", 0);
                    string js = string.Format(@"sum=ii+jj;");
                    context.Run(js);
                    int sum = (int)context.GetParameter("sum");
                }
                sw.Stop();

                long useJS_Total = sw.ElapsedMilliseconds;
                float useJS_Average = ((float)sw.ElapsedMilliseconds) / 1000000;

                sw.Reset();
                sw.Start();
                i = 1000000;
                while (i-- > 0)
                {
                    int ii = 1;
                    int jj = 2;
                    int sum = 0;
                    sum = ii + jj;
                }
                sw.Stop();

                long nouseJS_Total = sw.ElapsedMilliseconds;
                float nouseJS_Average = ((float)sw.ElapsedMilliseconds) / 1000000;

                string msg = "";
                msg += string.Format("useJS_Total: {0}\r\n", useJS_Total);
                msg += string.Format("useJS_Average: {0}\r\n\r\n\r\n", useJS_Average);
                msg += string.Format("nouseJS_Total: {0}\r\n", nouseJS_Total);
                msg += string.Format("nouseJS_Average: {0}\r\n\r\n\r\n", nouseJS_Average);

                MessageBox.Show(msg);
            }
        }

结果(上面的是通过js引擎计算的时间、下面的是纯C#计算时间,悲剧啊):这个Noesis.Javascript只适用于性能要求不高的场合

您可能感兴趣的文章:
  • 详解Chart.js轻量级图表库的使用经验
  • 常用的9个JavaScript图表库详解
  • 使用Chart.js图表库制作漂亮的响应式表单
  • JavaScript可视化图表库D3.js API中文参考
  • javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
  • Node.js开源应用框架HapiJS介绍
  • 开源的javascript项目Kissy介绍
  • Java中使用开源库JSoup解析HTML文件实例
  • jQuery EasyUI 开源插件套装 完全替代ExtJS
  • 优秀js开源框架-jQuery使用手册(1)
  • 一个加密JavaScript的开源工具PACKER2.0.2
  • 4个顶级开源JavaScript图表库

标签:新疆 延安 曲靖 绵阳 宜春 大兴安岭 黄南 焦作

巨人网络通讯声明:本文标题《利用noesis.Javascript开源组件.Net中执行javascript脚本》,本文关键词  利用,noesis.Javascript,开源,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《利用noesis.Javascript开源组件.Net中执行javascript脚本》相关的同类信息!
  • 本页收集关于利用noesis.Javascript开源组件.Net中执行javascript脚本的相关信息资讯供网民参考!
  • 推荐文章