百度 CDN公共库

命令(Command)

http://developer.baidu.com/wiki/index.php?title=docs/cplat/libs

2018/1/10 19:06:35

命令能够约束代码,仍是可以约束步骤逻辑。(事件的效应是公布和传唱一些消息,对什么响应事件不做规定,各种接收者可以行使自身的一言一动来响应事件。也便是说事件不抱有约束力)

 

指令系统的主干成分

·命令(Command):实际上便是贯彻了ICommand接口的类,平常采纳最多的是RoutedCommand类
·命令源(Command Source):实现了ICommandResource接口的类(Button)
·命令目的(Command Target):必须是促成了IInputCommand接口的类
·命令关联(Command
Binding):负责把外围逻辑与命令关联起来,比如执行以前对命令是不是足以执行实行判断、命令执行后还有何样后续工作等

简介

命令的运用

CDN公共库是指将常用的JS仓库储存放在CDN节点,以便于广大开发者直接调用。与将JS仓库储存放在服务器单机上比较,CDN公共库特别安定、高速。
百度公共CDN为你的应用程序提供稳定、可信赖、高速的劳务,包罗全世界拥有最流行的开源JavaScript库。

1.创造命令类

即取得1个兑现ICommand接口的类,假设命令与现实工作逻辑无关,则采取WPF类库中的RoutedCommand即可。如若想获得与事务逻辑相关的专有命令,则须要成立RoutedCommand(或许ICommand)的派生类。

财富列表

运用格局: 
加载JS库,复制HTML代码片段(如下所示)到网页。例如,要加载jQuery,将如下所示的代码嵌入到您的网页中即可。

<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
2.阐明命令实例

技术:一般情状下,只需求操作1个指令实例与之对应即可。因而先后中的命令多选取单件格局(Singletone
Pattern)以减掉代码复杂度。

backbone

加载地址

  • 未压缩:

<script src="http://libs.baidu.com/backbone/0.9.2/backbone.js"></script>
  • 压缩: 

<script src="http://libs.baidu.com/backbone/0.9.2/backbone-min.js"></script>

官网http://documentcloud.github.com/backbone/

支撑的本子:0.9.2

3.钦赐命令源

命令源拥有命令和命令源四个属性。
同三个限令能够有三个源。
如果把命令指派给命令源,命令源就会受命令影响,命令无法实施的时候作为命令源的控件不可用。革命临官发送命令的章程齐驱并驾,例如单机双击。

Bootstrap

加载地址

  • 未压缩:

<script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.js"></script>
<link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.css" rel="stylesheet">
  • 压缩:

<script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
<link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">

官网https://github.com/twitter/bootstrap/

帮助的版本:2.0.4 ,2.0.3 ,2.0.2 ,2.1.1,2.2.1,2.3.1,2.3.2,
3.0.3

4.点名命令指标

命令目的不是命令的属性而是命令源的品质。无论那一个命令源是还是不是持有大旨都会吸收接纳这些命令。借使没有点名命令指标,暗中认可为当前难题对象正是命令目的。

dojo

加载地址

  • 压缩:

<script src="http://libs.baidu.com/dojo/1.8.0/dojo.js"></script>

官网http://dojotoolkit.org/

协助的本子:1.8.3, 1.8.2, 1.8.1, 1.8.0, 1.7.4, 1.7.3, 1.7.2, 1.7.1,
1.7.0, 1.6.1, 1.6.0, 1.5.2, 1.5.1, 1.5.0, 1.4.4, 1.4.3, 1.4.1, 1.4.0,
1.3.2, 1.3.1, 1.3.0, 1.2.3, 1.2.0, 1.1.1

5.安装命令关联(命令绑定)

WPf须求CommandBinding在实施前扶掖判断是或不是足以实施,在实行后做一些事件来“打扫战场”。命令目的向命令关联发送路由事件,命令关联捕捉并拍卖路由事件,向命令反馈新闻。

ext-core

加载地址

  • 压缩:  

<script src="http://libs.baidu.com/ext-core/3.1.0/ext-core.js "></script>

官网http://www.sencha.com/products/extjs/

支撑的本子:3.1.0,3.0.0

Highcharts

加载地址

  • 压缩:

<script src="http://libs.baidu.com/highcharts/2.2.5/highcharts.js"></script>

官网http://www.highcharts.com/

扶助的版本:2.3.5, 2.2.5

1.ICommand接口包涵八个方法和叁个事变

Execute()方法包罗应用程序逻辑(例如打字与印刷文书档案);
CanExecute()方法重回命令状态(命令可用重回true,不可用再次回到false);
CanExecuteChanged事件,命令状态改变时引发,那是提示信号,表示应当调用CanExecute()检查命令状态。

Highstock

加载地址

  • 压缩:

<script src="http://libs.baidu.com/highstock/1.2.5/highstock.js"></script>

官网http://www.highcharts.com/

支撑的本子:1.2.5

2.RoutedCommand类自动达成ICommmand接口的类

不包罗其余应用程序逻辑,只表示命令。为事件冒泡和隧道添加了有的额外的底子结构

jqMobi

加载地址: 压缩:

<script src="http://libs.baidu.com/jqmobi/1.0.0/jq.ui.min.js "></script>

<script src="http://libs.baidu.com/jqmobi/1.0.0/jq.mobi.min.js "></script>

官网http://www.jqmobi.com/

支撑的本子:1.0.0

3.RoutedUICommand类继承自RoutedCommand类

用以全数文本的授命,只扩张了Text属性

jQuery

加载地址

  • 未压缩:

<script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script>
  • 压缩:  

<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>

官网http://jquery.com/

支撑的本子: 2.0.3, 2.0.2, 2.0.1, 2.0.0, 1.10.2, 1.10.1, 1.10.0,
1.9.1, 1.9.0, 1.8.3, 1.8.2, 1.8.1, 1.8.0, 1.7.2, 1.7.1, 1.7.0, 1.6.4,
1.6.3, 1.6.2, 1.6.1, 1.6.0, 1.5.2, 1.5.1, 1.5.0, 1.4.4, 1.4.3, 1.4.2,
1.4.1, 1.4.0, 1.3.2, 1.3.1, 1.3.0, 1.2.6, 1.2.3

执行命令

RoutedUIIcommand类没有其余编码的成效,只表示命令。为触发命令,供给有命令源(也可采纳代码)。为响应命令,须求有指令绑定,命令绑定将举行转载给普通的事件处理程序。

jQuerymobile

加载地址

  • 未压缩:

<script src="http://libs.baidu.com/jquerymobile/1.3.0/jquery.mobile-1.3.0.js"></script>
  • 压缩:  

<script  src="http://libs.baidu.com/jquerymobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>

官网http://jquerymobile.com/

帮衬的版本:1.3.0, 1.1.1, 1.0.1

1.命令源

ICommandSource定义了三个性格:
·Command:指向连接的指令,必需
·CommandParameter:提供其余希望随命令发送的多寡
·CommandTarget:明确将在当中执行命令的因素
譬如:下边包车型地铁按钮使用Command属性连接到ApplicationCommands.New命令:

<Button Command="ApplicationCommands.New">New</Button>

jQuerytools

加载地址

  • 压缩:

<script src="http://libs.baidu.com/jquerytools/1.2.7/jquery.tools.min.js"></script>

官网http://jquerytools.org/

帮助的版本:1.2.7

2.命令绑定

明确:
·当命令被触发时执行什么样操作
·怎样明确命令是或不是能被执行(可选)
·命令在何地起效能

jQueryui

加载地址

  • 压缩:

<script src="http://libs.baidu.com/jqueryui/1.8.22/jquery-ui.min.js "></script>

官网http://jqueryui.com/

支撑的本子:1.10.2, 1.10.1, 1.10.0, 1.9.2, 1.9.1, 1.9.0, 1.8.24,
1.8.23, 1.8.22, 1.8.21, 1.8.20, 1.8.19, 1.8.18, 1.8.17, 1.8.16, 1.8.15,
1.8.14, 1.8.13, 1.8.12, 1.8.11, 1.8.10, 1.8.9, 1.8.8, 1.8.7, 1.8.6,
1.8.5, 1.8.4, 1.8.2, 1.8.1, 1.8.0, 1.7.3, 1.7.2, 1.7.1, 1.7.0, 1.6.0,
1.5.3, 1.5.2

命令实例:

概念1个下令,使用Button来发送那么些命令,当命令送达Text博克斯时,TextBox被清空(如若没有文字则不发送命令)
·界面代码:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Command"
    Background="LightBlue" Height="350" Width="525">
<StackPanel x:Name="stackPanel">
    <Button x:Name="button1" Content="Send Command" Margin="5"/>
    <TextBox x:Name="textBoxA" Margin="5,0" Height="100"/>
</StackPanel>
</Window>

·后台代码:

//实现:定义一个命令,使用Button来发送这个命令,当命令送达TextBox时,TextBox被清空(如果没有文字则不发送命令)

namespace WpfApplication1
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        InitializeCommand();
    }
    //声明并定义命令
    private RoutedCommand clearCmd = new RoutedCommand("CLear", typeof(MainWindow));

    private void InitializeCommand()
    {
        //把命令赋值给命令源(发送者)并指定快捷键
        this.button1.Command = this.clearCmd;
        this.clearCmd.InputGestures.Add(new KeyGesture(Key.C, ModifierKeys.Alt));//按Alt+C键

        //指定命令目标
        this.button1.CommandTarget = this.textBoxA;

        //创建命令关联
        CommandBinding cb = new CommandBinding();
        cb.Command = this.clearCmd;//只关注与clearCmd相关的事件
        cb.CanExecute += new CanExecuteRoutedEventHandler(cb_CanExecute);
        cb.Executed +=new ExecutedRoutedEventHandler(cb_Executed);

        //把命令关联安置在外围控件上
        this.stackPanel.CommandBindings.Add(cb);
    }

    //当探测命令是否可以执行时,此方法被调用
    void cb_CanExecute(object sender, CanExecuteRoutedEventArgs e)
    {
        if(string.IsNullOrEmpty(this.textBoxA.Text))
        { e.CanExecute = false; }
        else
        { e.CanExecute = true; }

        //避免继续向上传而降低程序性能
        e.Handled = true;
    }

    //当命令送达目标后,此方法被调用
    void cb_Executed(object sender, ExecutedRoutedEventArgs e)
    {
        this.textBoxA.Clear();
        //避免继续向上传而降低程序性能
        e.Handled = true;
    }
}

解释:
·运营程序,在TextBox中输入文字后Button在指令可实施情状的气象下变成可用,此时单击Button大概按Alt+C键,Text博克斯都会被清空。
·RoutedCommand并不对命令目标做任何操作,而是由CommandBinding操作的。
·无论是探测命令是还是不是实施或者命令送达目的,都会激励命令指标发送路由事件,那么些路由事件会顺着UI成分树向上传递并最终被CommandBinding所捕捉。
·CommandBinding棉被服装置在外侧的StackPanel上,CommandBinding起1个侦听器的功能,而且尤其针对clearCmd命令捕捉与其连带的路由事件。
·当CommandBinding捕捉到CanExecute事件,就会调用cb_CanExecute方法判断命令执行规范是不是满意,并申报给命令供其影响命令源的气象;当捕捉到Execute事件,表示命令的Execute方法已经进行了,可能说命令已经意义在了指令指标上(RoutedCommand只承担让命令目的激发Executed),则调用Executed方法。
·CommandBingding一定要安装在命令目的的外面控件上,不然无法捕捉到CanExecute和Executed等路由事件。

JSON

加载地址

  • 未压缩:

<script src=" http://libs.baidu.com/json/json2/json2.js"></script>

官网https://github.com/douglascrockford/JSON-js

支撑的版本:json2

命令库

命令具有“一处注脚,随地使用”的特征。便携的命令库包含:ApplicationCommands,ComponentCommands,NavigationCommands,MediaCommands,艾德itingCommands.都以静态类。例如大家能够一直拿命令库用那些标准命令,不需求本人注解:Open,Save,Play,Stop。(属于ApplicationCommand)

lesscss

加载地址

  • 压缩:

<script src="http://libs.baidu.com/lesscss/1.3.0/less.min.js"></script>

官网http://www.lesscss.net/

协理的版本:1.3.0

自定义Command

———————待更新

mootools

加载地址

  • 压缩:

<script src="http://libs.baidu.com/mootools/1.4.5/mootools-yui-compressed.js"></script>

官网http://mootools.net/

支撑的本子:1.4.5, 1.4.4, 1.4.3, 1.4.2, 1.4.1, 1.4.0, 1.3.2, 1.3.1,
1.3.0, 1.2.5, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.1.2, 1.1.1

prototype

加载地址

  • 未压缩:

<script src="http://libs.baidu.com/prototype/1.7.1.0/prototype.js"></script>

官网http://prototypejs.org/

协理的版本:1.7.1.0, 1.7.0.0, 1.6.1.0, 1.6.0.3, 1.6.0.2

QUnit

加载地址

  • 未压缩:

<script src="http://libs.baidu.com/quint/1.9.0/qunit.js"></script>

官网http://docs.jquery.com/QUnit

支撑的本子:1.4.0,1.5.0,1.6.0,1.7.0,1.8.0,1.9.0

scriptaculous

加载地址

  • 未压缩:

<script src="http://libs.baidu.com/scriptaculous/1.9.0/scriptaculous.js "></script>

官网http://script.aculo.us/

支撑的本子:1.9.0, 1.8.3

swfobject

加载地址

  • 压缩:

<script src="http://libs.baidu.com/swfobject/2.2/swfobject.js"></script>

官网http://code.google.com/p/swfobject/

协理的本子:2.1,2.2

UNDERSCORE

加载地址

  • 未压缩:

<script src="http://libs.baidu.com/underscore/1.3.3/underscore.js"></script>
  • 压缩:  

<script src="http://libs.baidu.com/underscore/1.3.3/underscore-min.js"></script>

官网http://underscorejs.org/

支撑的版本:1.3.3

webfont

加载地址

  • 压缩:  

<script src="http://libs.baidu.com/webfont/1.0.28/webfont.js"></script>

官网https://developers.google.com/webfonts/docs/webfont_loader

援助的本子: 1.3.0, 1.1.2, 1.1.1, 1.1.0, 1.0.31, 1.0.30, 1.0.29,
1.0.28, 1.0.27, 1.0.26, 1.0.25, 1.0.24, 1.0.23, 1.0.22, 1.0.21, 1.0.19,
1.0.18, 1.0.17, 1.0.16, 1.0.15, 1.0.14, 1.0.13, 1.0.12, 1.0.11, 1.0.10,
1.0.9, 1.0.6, 1.0.5, 1.0.4, 1.0.3, 1.0.2, 1.0.1, 1.0.0

yui

加载地址

  • 未压缩:

<script src="http://libs.baidu.com/yui/3.4.1/yui.js"></script>
  • 压缩:  

<script src="http://libs.baidu.com/yui/3.4.1/yui-min.js"></script>

官网http://yuilibrary.com/

支撑的本子:3.4.1,3.3.0

zepto

加载地址

  • 压缩:  

<script src="http://libs.baidu.com/zepto/0.8/zepto.min.js"></script>

官网http://zeptojs.com/

协助的版本:0.8,1.0rc

Font Awesome

加载地址

  • 压缩:  

<link
href=”//libs.baidu.com/fontawesome/4.0.3/css/font-awesome.min.css”
rel=”stylesheet”>

  • 未压缩:  

<link href=”//libs.baidu.com/fontawesome/4.0.3/css/font-awesome.css”
rel=”stylesheet”>

官网http://fontawesome.io/

支撑的本子:4.0.3

发表评论

电子邮件地址不会被公开。 必填项已用*标注