精华内容
下载资源
问答
  • 例如,在编辑里随机输入123456,然后以这个字符串作为生成的文本名称,即123456.ini,有什么方法实现?有的话还请具体些,谢谢
  • vue.js绑定复选的方法:1、每个选项【v-model】绑定一个变量,这些变量一般放在一个对象中;2、为【v-model】绑定一个相同的属性名称,且属性为数组。vue.js绑定复选的方法:在传统的HTML中实现复选...

    用vue.js绑定复选框的方法:1、每个选项框都用【v-model】绑定一个变量,这些变量一般放在一个对象中;2、为【v-model】绑定一个相同的属性名称,且属性为数组。

    a3de60244e50d10fc2db2cda39788ae7.png

    用vue.js绑定复选框的方法:

    在传统的HTML中实现复选框代码如下:

    jack

    bob

    alice

    从以上代码可以看到:HTML中单选框和复选框的构造方法类似,只是type值变成checkbox,同时也用name和value表征一个复选框以及选中情况。

    在vue.js中构造复选框也与单选框类似,只是每个选项框都用v-model绑定一个变量,这些变量一般放在一个对象中,或者为v-model绑定一个相同的属性名称,且属性为数组;针对这两种情况的举例如下:

    使用v-model为每个选项框绑定一个变量:

    jack

    bob

    alice

    已选:{{person}}

    var app = new Vue({

    el: '#app',

    data: {

    person: {jack: false, bob: false, alice: false}

    }

    })

    从以上代码可以看到:这里已经不需要value属性,为每个属性绑定的值是boolean类型的,当选中时该值变为true,没选中为false;

    给v-model绑定一个相同的数组类型的属性:

    jack

    bob

    alice

    已选:{{whom.join('|')}}

    var app = new Vue({

    el: '#app',

    data: {

    whom: []

    }

    })

    从代码中可以看到:为每个选项都绑定一个相同的数组名称,这里需要value属性,当被选中时,相应的value值会加入到数组中,取消选中时,删除数组中对应的value值。

    展开全文
  • 怎么用Fork/Join框架实现对购物车的性能优化 购物车是电商项目中最基本的功能之一,一般会展示商品的基本信息(商品名称,图片,价格等),目前正在参加哪些活动,库存是否足够等信息,最后往往也会对当前选中的...

    怎么用Fork/Join框架实现对购物车的性能优化

     购物车是电商项目中最基本的功能之一,一般会展示商品的基本信息(商品名称,图片,价格等),目前正在参加哪些活动,库存是否足够等信息,最后往往也会对当前选中的商品进行价格汇总,给用户个参考。好像并不复杂,一个商品信息的计算加上服务之间的网络延时等等算50ms,也挺短的。但是如果购物车里面有100个商品呢(这对大部分人来说不可思议,但我真见过购物车里面加了80多个商品的牛人)?5s的时间对业务来说明显是不可接受的,这时候我们就需要对购物车进行优化了。
    

    由于购物车结果计算耗时是随着商品的增加而线性增加的,因此我们采用“分治”的思想来进行购物车的性能优化,将商品分成多份交给给多个线程来同时完成。而在Java中Fork/Join框架正好是用来解决这种问题的。

    Fork/Join简介

    Fork/Join是Java7提供的一个用于并行执行的任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。顾名思义,Fork即拆分任务,Join用来将子任务的结果合并

    使用Fork/Join主要会用到两个类:ForkJoinTaskForkJoinPool
    ForkJoinTask 用来创建一个ForkJoin任务。它提供在任务中执行fork()和join()操作的机制,并且会维护一个双端队列用来存储子任务。通常情况下我们不直接继承ForkJoinTask,而是继承它的两个子类RecursiveActionRecursiveTask,其中,RecursiveTask用于有返回结果的任务,我们对购物车的优化就需要继承该类。
    ForkJoinPool ForkJoinTask需要使用ForkJoinPool来执行,ForkJoinPool会从ForkJoinTask中工作队列中取出任务并执行,默认最多会创建CPU核心数的线程来执行ForkJoinTask中的任务

    代码实现

    直接贴代码

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    import java.util.concurrent.*;
    
    public class ForkJoinDemo {
    
        public static class ItemInfoTask extends RecursiveTask<Object>{
    
            // 商品ID集合
            private List<String> list;
            // 最终计算的商品大小
            private final int taskSize = 1;
    
            ItemInfoTask(List<String> list){
                this.list = list;
            }
    
            @SuppressWarnings("unchecked")
            @Override
            protected Object compute() {
                // 计算出来的结果
                List<Object> result = new ArrayList<>();
    
                // 将商品数量分成4个
                if(list.size() <=  taskSize){
                    // 假设每个商品信息的计算会耗费100ms
                    try {
                        Thread.sleep(taskSize * 50);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    // 将计算的结果加到集合中
                    result.add(Collections.singletonList(new Object()));
                }else{
                    // 对于大于 taskSize 的集合分成两半再进行并行计算
                    int middle = list.size() / 2;
                    ItemInfoTask leftTask = new ItemInfoTask(list.subList(0,middle));
                    ItemInfoTask rightTask = new ItemInfoTask(list.subList(middle,list.size()));
                    // 执行子任务
                    leftTask.fork();
                    rightTask.fork();
                    // 等待子任务完成,并得到执行结果
                    List<Object> leftResult = (List<Object>) leftTask.join();
                    List<Object> rightResult = (List<Object>) rightTask.join();
    
                    result.addAll(leftResult);
                    result.addAll(rightResult);
                }
                // 返回本次任务的结果
                return result;
            }
        }
    
        public static void main(String[] args) {
            List<String> list = new ArrayList<>();
            for (int i = 0; i < 100; i++) {
                list.add("商品ID");
            }
            long begin = System.nanoTime();
            // 将任务放到线程池中执行
            ForkJoinPool forkJoinPool = new ForkJoinPool();
            ForkJoinTask result = forkJoinPool.submit(new ItemInfoTask(list));
            try {
                // 获取结果
                List x = (List) result.get();
                System.out.println(x.size());
            } catch (InterruptedException | ExecutionException e) {
                e.printStackTrace();
            }
            System.out.println("花费时间:" + TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - begin));
            forkJoinPool.shutdown();
        }
    }
    

    执行结果:

    花费时间:808
    

    总结

    代码中我们假设每个商品的计算耗时为100ms,如果不使用任务分割的方式,我们将耗时10s才能计算完成,但是通过将任务拆成小任务,只使用了800ms(结果会因计算机性能不同而有差异,我的电脑是8核处理器,最多会有8个线程同时计算任务)。

    展开全文
  • <p><strong>企业名称(必填) 优点科技 <p><strong>环境(必填) - 电脑操作系统:Mac OS - 手机系统: Android 7.1.1 - SDK分支: 10023 - 相关模块: Service <p><strong>现象(必填&#...
  • wookbook打开一个excel文件并传输数据,如果路径中已经有了相同名称的文件如name.xls,保存的时候不管用save还是saveas都会提示已经有同名文件,是否覆盖,怎样才能让这个提示不出现呢
  • JMeter怎么用

    万次阅读 2017-12-27 21:00:27
    JMeter是一款测试工具,...2.解压以后打开/bin/jmeter.bat,出现命令几秒后自动弹出图形界面 二.测试计划 1.对百度模拟request请求 Ⅰ.右键测试计划-add-Threads(Users)-setUp Thread Group 在名称上改为VisitBat

    JMeter是一款测试工具,可以对网站虚拟出上前的并发访问量,也可以对数据库模拟用户测试。
    一.安装和使用
    1.安装包在Jmeter包
    2.解压以后打开/bin/jmeter.bat,出现命令框几秒后自动弹出图形界面
    这里写图片描述

    二.测试计划
    1.对百度模拟request请求
    Ⅰ.右键测试计划-add-Threads(Users)-setUp Thread Group
    在名称上改为VisitBat,并保存ctrl+s
    Ⅱ.右键VisitBat-add-Sampler(采样器)-HTTP请求,在生成的请求配置页面上Basic选项卡下的服务器名称、IP填入www.baidu.com
    Ⅲ.右键VistBat-add-监听器-查看结果树
    Ⅳ.右键VistBat,运行start
    由于默认的配置是单线程访问一次所以很快就有结果,单击查看结果树,可以在右边看到访问结果.
    这里写图片描述
    在vistBat选项右边可以设置线程数量和循环次数以及单次执行时间~~

    2.对mysql模拟用户查询请求
    Ⅰ.测试计划-右键ADD-Threads-setUp Thread Group
    更改名称为JDBCExample
    Ⅱ.对JDBCExample右键-添加-配置元件-JDBC Connection Configuration.设置variable name为 pool,最下面的Database Connection Configuration填写:
    DataBase URL:jdbc:mysql://localhost:3306/hibernate
    JDBC Driver class:com.mysql.jdbc.Driver
    Username:root
    Password:123
    Ⅲ.添加样本 add-Sampler-JDBC Request,设置variable name为pool,在下方使用sql语句 select * from news
    Ⅳ.添加监视器 add-监听器-查看结果树
    最后执行,右键JDBCExample start,然后点进结果树查看结果
    这里写图片描述

    展开全文
  • 模态

    2019-06-09 15:17:28
    模态顾名思义就是弹出来的一个框框,怎么样才能写出模态,下面就来说下模态的使用方 法。模态的使用方法有很多,我经常使用的有两种, 下面来介绍第一种,首先要个 标签 里面可以写弹出页面样式,写好...

    模态框顾名思义就是弹出来的一个框框,怎么样才能写出模态框,下面就来说下模态框的使用方
    法。模态框的使用方法有很多,我经常使用的有两种,

    下面来介绍第一种,首先要用个 标签 里面可以写弹出框页面样式,写好样式之后在写js绑定到form表单,就可以完成点击打开模态框了。下面是代码样式

    下面这段是JS打开模态框的方法 function btn() { $("#test ").modal('show'); } btn绑定打开按钮,test是绑定form表单,show是打开方法。这样就可以弹出一个简单的模态框了。

    下面来说下第二种,使用layui的模态框,要使用layui里的方法样式,首先要引用css和js样式,
    也就是下面的两条。

    模态框又是弹出层的一种,属性有很多,下面列举些常用的属性,例如 maxmin 最大最小化,false关闭,ture打开 resize 是否允许拉伸,false关闭,ture打开 maxwidth和maxheight最大宽度和高度 基本的属性说完之后就来看下layui怎么实现模态框的打开, 首先绑定需要点击弹出模态框的事件qxrck,然后写js js代码如下 ///钱箱 function qxcrk() { layer.open({ type: 2, area: ['800px', '600px'], title: '钱箱出入款', shadeClose: true, anim: 1, content: '/InformationChanges/BasicInformation/BasicInformation' }); }

    在这里插入图片描述

    样式如上图, jcxx绑定的是需要点击的地方,
    layer.open是打开方法
    Type:2是模态框类型,
    area是弹出模态框的大销,
    title是模态框头部名称,
    shadeCols:true是否点击遮罩关闭,
    anim:1,弹出动画。
    Content是模态框样式的路径
    上面的属性也是经常需要用到的,layui里的模态框样式比较多,多加使用便能熟悉。

    展开全文
  • 的时候提示我类型错误了,但我不知道怎么改,请大神伸出援手,下面是我的代码 js代码: ``` function dic_table(){ var row=1; //alert("gggg"); $('#dic_table').bootstrapTable('destroy'); $('#dic...
  • html中input文字,初始里边有文字提示。当点选时,文字消失,怎么改?...中input文字,初始里边有文字提示。当点选时,文字消失,怎么改?...如:单纯的文字:(通常使用者名称之类的)密码状态时 中...
  • True)#描述器来指定属性名称(字段名) 按照int字段来创建 name fieldname pk null ... name = StringField('name',length=64,nullable=False) age = IntField('age') #默认age不...
  • 如何反射(或其他方法)得到方法参数的名称 请看如下代码(需求) <pre name="code" class="java">package com.servlet; public class Controller { public String login(String username,...
  • 新手研究spring mvc框架

    2012-02-23 23:25:35
     大家好,刚把javaee学完,接着趁热打铁学框架,这是我搭建的一个spring框架,搭的不好的地方请大家指点,,我的spring2.5的jar,听说这个版本比较稳定,下面介绍我的框架是怎么搭建的   1.新建一个web工程,...
  • 短视频脚本框架

    2021-01-04 11:23:01
    1-标题:问题 2-结论:答案,观点 3-举例,故事,案例。 4-结论总结 5-引导语 【模板2】 1-问题 2-答案12345 3-引导语 【模板3】 ...以上模板参考就行了,梳理出自己的框架结构,每个视频熟练起来。 ...
  • Spring 框架IOC失败总结

    2011-12-23 12:59:16
    在修改applicationContext.xml中,XXX貌似没有对应关系(不知道该怎么用,请知道的同学教我一下),“名称1”必须和Action中Service的变量名称一致。&lt;bean id="名称1" class="Service类全地址&...
  • 根据一个业务名称,直接生成需要的Activity,Bean,Adapter,layout。 这样可以省去很多的时间,将逻辑什么的都在需要地方。 但是需要注意的问题是: 1.和其他成员沟通好需要怎么使用; 2.Activity
  • Quartz-计时器框架

    2019-10-18 16:51:04
    明白Quartz怎么用,首先要了解==Scheduler(调度器)、Job(任务)和Trigger(触发器)==这3个核心的概念。 1.Scheduler: 代表一个Quartz的独立运行容器, Trigger和JobDetail可以注册到Scheduler中, 两者在Scheduler中...
  • 怎么跑 将.env.example重命名为.env并设置您的postgres名称和密码。 在终端中运行以下命令: createdb sopt psql -f sql/schema.sql sopt cargo run 路线图 用户 登记 登录 信息更新 邀请 秩 激流 添加 ...
  • 筛选组织机构名称:先获取到所有组织机构,组织机构id再获取部门id。从而得到穿梭展示,取得数据 watch: { OrgID(newVal) { this.getDepart(newVal) }, // 根据机构id获取部门 async getDepart(id) { ...
  • 前言:之所以自己写一个,是因为网上很多,不能,或者说,我人品不好,没弄出来,于是自己搞了一下,并分享。 我觉得,搭建一个框架教程,没有结构图就是扯淡,鬼知道你文件放在什么位置。。。好几个教程都是这样...
  • 之前一直是用的Servlet进行的开发,但是很繁琐,效率很低下,框架以前只是知道,但是一直没怎么用过,刚好新年开工不怎么忙,下午就查资料硬是折腾了一番。觉得还是有些收获的,于是便记录下来。1、在Myeclipse中...
  • Afinal框架_FinalDb的用法

    千次阅读 2013-10-26 13:21:18
    不过,现在先要看一下怎么用,再从表面推导内在。  本文就Afinal中建表、添加、删除、查找等常见数据库操作加以说明、探索。  一、创建数据库    可以看到,有多个create的方法。可以通过参数指定要创建的数据的...
  • 带你手写微前端框架

    2020-12-28 06:04:01
    | 模块名称 | 说明 | | :-------- | :--------| | /core | babel编译器的核心库,负责所有babel预设和插件的加载及执行 | | /plugin-syntax-dynamic-import | 支持使用<code>import()进行动态导入,...
  • 我开发的是一个集成后台发文章的,目前遇到了一个问题,就是后台已经添加很多个站点,所有站点的频道都一样名称。比如想选第一个站点选复选一个频道,其他站点可以根据第一个站选的一个频道,其他所有的站也...
  • tomcat下不配置Context,因为需要定时任务,配置Context的话会加载两遍 ...middlelayer是项目名称,zxghdefult是controller映射,intoIndex是方法 ...为什么会把之前的地址带上,我想相对路径引用的的话怎么解决
  • django写网页的时候,数据库内容的调用是少不了的。在前台和后台之间是怎么实现交互的,这个内容在我初次接触的时候感觉到了吃力,现在我讨论一下。 django的数据库的名称是:db.sqlide3 在你创建的项目里面的...
  • 当前的版本, xSystem Framework 1.0.32前一篇里,确定了名称空间的实现,组建最...IE下尚有vs.net这彪旱的东西可以,Firefox 下面怎么调试,一直没搞定,不然不排除自己水平问题; 面对框架里巨量的自定义对像,实在
  • 好久没写博客了,发现又从左面的排名里掉出去了。 说来惭愧,一直说是开源,但是源码一直没能放到git里面。...名称设置为 naturefw好了,不应该jyk0011。有没有知道怎么改的,不用重新上传的方式。 ...
  • 图形符号 名称 功能 终端起止 表示一个算法的起始和结束是任何算法程序框图不可缺少的 输入输出 表示一个算法输入和输出的信息可用在算法中任何需要输入输出的位置 处理执行 赋值计算.算法中处理数据需要...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 278
精华内容 111
关键字:

名称框怎么用