级a做爰片免费视网站设计logo免费生成器

diannao/2026/1/22 13:01:28/文章来源:
级a做爰片免费视网站,设计logo免费生成器,西安谁家做网站,手工灯笼最近马上要开始一个新项目的研发#xff0c;作为第一次mvvm应用的尝试,我决定使用knockoutjs框架。作为学习的开始就从官网的Document翻译开始吧#xff0c;这样会增加印象并加入自己的思考#xff0c;说是翻译也并不是纯粹的翻译#xff0c;会加入自己对知识点的思考以及自…        最近马上要开始一个新项目的研发作为第一次mvvm应用的尝试,我决定使用knockoutjs框架。作为学习的开始就从官网的Document翻译开始吧这样会增加印象并加入自己的思考说是翻译也并不是纯粹的翻译会加入自己对知识点的思考以及自己的尝试在系列最后也希望用一个应用案例作为结尾。希望自己能坚持下来并有所收获理解不对的地方大家也指出来避免我”误入歧途“。也并不会翻译所有的内容我会根据自己的经验选择最能反映它使用和精髓的部分。当前版本为3.4       好了闲言少叙正篇开始。      华丽的分割线       knocket主要围绕由以下三个核心特征组成  Observables观察器与dependency tracking依赖追踪 Declarative bindings声明式绑定 Templating模板            MVVM and View Models       Model-View-View Model (MVVM) 是一种创建用户界面或用户接口的设计模式。你可以通过将UI拆分成下面三个部分从而将复杂的UI简洁化清晰化 Model数据模型: 应用程序存储数据。模型包括了你应用程序域中与业务相关的数据以及这些数据对应的操作(例如 一个银行账户模型具有转账的功能)并且它跟UI是相互独立 的。 当时用KO的时候,通常这类模型是通过ajax从服务器端进行获取的。ViewModel视图模型: 服务于数据模型为数据模型在UI上的展现及UI上的操作进行包装服务。 例如, 如果你要在UI上做一个列表展现, 你的视图模型将会是包含一个数据集合的对象, 并提供一些添加和删除数据的相关方法。需要注意的是视图模型并不是UI本身它并不包括任何UI元素比如按钮啊标签啊样式之类。它也不是持久化的数据对象它只是为数据模型临时保存一些用户正在处理的数据。当我们在使用KO的时候它无非就是一些纯粹的javascript对象而已。A view视图: 一个可视可交互的真正的UI展现他展现着视图模型的当前状态。它所展现的信息来自于视图模型并且向视图模型发送命令执行动作 (例如 当用户点击按钮的时候视图向视图模型发送命令视图模型进行真正的操作),并且当视图模型属性发生变化的时候视图会自动进行展现的更新。当时用KO的时候你的视图中的Html元素内容可以通过声明式绑定与视图模型进行连接从而决定UI如何展现。另外你也可以通过使用模板的方式来使用视图模型中的数据生成UI中的Html内容。模板后面会提到      好了让我们来举个很小的例子来看看上面说的视图与视图模型在KO中是如何协作的。创建一个视图模型对象非常容易随意声明一个javascript对象我们就可以将它作为视图模型对象。例如 //创建一个视图模型对象 var myViewModel {personName: Bob,personAge: 123}; ko.applyBindings(myViewModel);//ko是knockoutjs中的全局对象这句话的意思是将数据模型对象与UI中所有有data-bind的属性进行声明绑定的元素进行连接 然后我们就可以创建一个非常简单的视图来展现上面的视图对象。还记得吗他们使用声明式绑定来进行连接。下面的视图用来展现视图模型对象中的personName数据。 The name is span data-bindtext: personName/span   好了现在如果运行页面的话将会显示如下运行结果 通过上面的例子我们可以看到在UI上赋值我们并没有像jquery一样通过js来控制而是使用声明绑定的方式在UI元素和js数据对象上建立联系自动展现。在上面的代码标签中data-bind 并不是Html中的原生标记,它在Html5中得到浏览器的支持是KO框架用来进行声明式绑定的工具所以在KO中进行声明式绑定都通过data-bind属性进行。有了视图模型有了相应视图最后要进行两者的连接了所以下面这行代码必不可少 ko.applyBindings(myViewModel); //将myViewModel对象与UI中所有进行了声明式绑定的元素进行连接注意是所有。 完整测试代码 The name is span data-bindtext: personName/span section scripts {script src~/Scripts/knockout-3.4.0.js/scriptscript typetext/javascript$(function () {var myViewModel {personName: Bob,personAge: 123};ko.applyBindings(myViewModel);});/script }         关于ko.appyBindings(myViewModel)中参数的作用说明一下第一个参数说明在整个UI中你希望使用哪个视图模型对象与视图中的声明绑定进行连接。你也可以传递第二个参数来决定这个视图模型与UI中的哪个特定的声明式绑定(data-bind)进行连接而不是与所有的进行连接。举个例子, ko.applyBindings(myViewModel, document.getElementById(someElementId))。这就限制了这个视图模型对象只能与ID为someElementId 的Html元素对象以及它的后代元素对象进行连接,这样的话当你想要定义多个视图模型对象并且与页面中不同的元素进行绑定的时候就会特别有用。到目前为止真的是相当简单吧。      Observables      好了你已经看到了如何创建一个基本的视图模型以及如何通过绑定进行它的属性数据的展现。但是使用KO一个核心的好处是当视图模型内容改变的时候它还会自动更新你的UI,反之亦然。这有时会大大简化你的代码我们稍后展示这个效果。那么KO如何知道你的视图模型什么时候发生了改变进而更新你的UI呢答案是:你需要将你的数图模型中的属性声明为observable类型对象。 observables类型对象非常特殊当视图模型发生改变的时候他们可以向订阅者发出通知,并自动建立与订阅者的关系订阅者也就是具有声明式绑定的元素。举个例子, 重写一下上面的代码如下      $(function () {var myViewModel {personName: ko.observable(Bob),personAge: ko.observable(123)};ko.applyBindings(myViewModel);});      现在你完全不需要视图 data-bind 声明部分保持不变. 与之前代码不同的是现在ko可以自动监测变化了, 一旦视图模型有数据发生变化它就会自动更新视图。      Observables属性的读取与写入      要读取observable的当前值只需要像调用方法一样以无参数的方式调用它。以上面的代码为例, myViewModel.personName() 将会返回 Bob,而myViewModel.personAge() 将返回123。      要向observable属性中写入一个值的话也跟上面一样进行调用只不过传入一个你想要写入的新值就可以了。举个例子调用myViewModel.personName(Mary) 将会为personName赋一个新的名字。另外KO还提供了一个非常方便的代码链写法。 像这样myViewModel.personName(Mary).personAge(50) 会修改personName为 Mary personAge修改为 50。      observables的核心作用就是观察 也就是说, 被声明为observable的属性将来是会被双向通知的它通知其它UI元素它已经被修改了并且观察相关UI元素内容并将变化值更新到ViewModel对象上。KO框架中的很多内置绑定就是用来干这事儿的。所以当你在UI元素上例如span标签写上data-bindtext: personName的时候 text 绑定类型将把这个span元素进行注册并做好被通知的准备只要视图对象上的personName发生了该表span就会被通知修改内部的文本内容(假设personName是一个observable值另外除了text绑定还有许多其它类型绑定我们后面提到)。      当你通过调用myViewModel.personName(Mary)来修改personName的值的时候, text绑定将会自动更新相关DOM元素的text内容 。    observables的显示订阅处理       通常你无需干预订阅的过程所以初学者可以暂时跳过这一小节。     当observable类型数据发生改变后如果你希望在这个过程中做一些处理你可以调用observable属性上的subscribe方法来将自己的处理代码注册进来。举个例子: myViewModel.personName.subscribe(function(newValue) {alert(The persons new name is newValue); });     上面这段代码执行后如果修改了personName的值后那么将会弹出一个警告框并且通过newValue参数可以获取当前正在更新的值。这个过程叫订阅注册。     subscribe方法接受三个传入参数: callback 是一个function当通知到来时会自动执行, target (可选) 定义了在callback方法中 this代表了哪个对象默认的话this就是当前视图模型对象, event(可选; 默认值是change) 事件名称是指当什么类型的事件发生的时候会有通知到来默认情况下就是当值发生改变的时候。其它类型我们后面谈到。      当然了一旦你注册了一个自己的订阅你也可以根据需要在未来的某个时候取消这个订阅你需要先定义一个变量来接收subscribe当前的返回值然后调用dispose方法。代码如下 var subscription myViewModel.personName.subscribe(function (newValue) { /* do stuff */ }); // ...then later... subscription.dispose();      如果你希望在observable类型值在发生改变但被赋值之前做一些处理的话你也可以在beforeChange 事件上注册自己的处理代码如下 myViewModel.personName.subscribe(function(oldValue) {alert(The persons previous name is oldValue); }, null, beforeChange);     注意: Knockout 是否触发上面的订阅还有一个默认条件就是新的值必须与老的值不相同如果赋值时是相同值的话那么将不会触发这两个订阅。如果需要更改这种默认动作可以使用订阅器上的extend方法来修改。代码如下 myViewModel.personName.extend({ notify: always });     最后如果你的observable属性在更新时的动作比较耗时或者会更新的很频繁你可以通过限制通知的时间间隔毕竟订阅通知会有性能影响。做法如下 myViewModel.personName.extend({ rateLimit: 50 });     这样的话就算是频繁更新属性值每次通知的事件间隔也会控制在50毫秒。测试代码如下 button typebutton idbtnStart点击测试/button span idclickcontent/span section scripts {script src~/Scripts/knockout-3.4.0.js/scriptscript typetext/javascript$(function () {var myViewModel {//personName: ko.observable(ZhouBo)personName: ko.observable(ZhouBo)};myViewModel.personName.extend({ notify: always });myViewModel.personName.extend({ rateLimit: 5000 });ko.applyBindings(myViewModel);var index 0;$(#btnStart).click(function () {$(#clickcontent).text(index);myViewModel.personName(index);});}); 说明如果我快速点击按钮 btnStart,则5秒钟之后第一个span的内容才会发生变化也就是5庙后才发送了一次通知。   转载于:https://www.cnblogs.com/MichaelBang/p/5589421.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/89293.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站排版用什么软件wordpress 界面优化

文章目录 1、偏向锁出现的背景2、从共享对象的内存结构看偏向锁3、偏向锁的持有4、启动偏向锁5、sleep暂停来启动偏向锁6、偏向锁的撤销7、总体流程8、SinceJava15 偏向锁的废除 1、偏向锁出现的背景 如果一个线程连续几次抢到锁,仍然重复加锁解锁,就会…

营销型网站建设策划书营销方案包括哪些内容

问题:宽带下载网速本是30MB/s,经过路由器后速度仅10MB/s,这是为什么? 宽带下载测速可以到30MB/s,说明外线和光猫还有电脑是没有问题的。目前家庭的组网基本都是光纤入户了,你的测速瓶颈既然不在光猫&#…

社交网站开发阿里企业邮箱设置

之前发的丰富的经历我12年硕士毕业,历经华为,某芯片原厂外企,某芯片原厂国企,某手机公司,最后来到大疆,可以说是一个跳槽小能手,因为具有多家大企业的工作经历,我觉得谈下自己在各个…

帝国cms地方门户网站模板注册域名邮箱怎么弄

自动分配缓冲区类 Automatically Allocated Buffer Class. 这个类用于函数和方法中的临时缓冲区。如果临时缓冲区通常很小(几K的内存),但其大小取决于参数,则在堆栈上创建一个小的固定大小数组,并在足够大时使用它是有…

外贸网站平台都有哪些平台免费html5网站源码

案例中使用的软件版本 Unity2023.1.20.f1c1ARFoundtaion 5.1.0Apple ARKit XR Plugin 5.1.0 Google ARCore XR Plugin 5.1.0技术分析 我们可以实时检测用户手指触摸的屏幕位置,从触摸位置投射一条射线(Raycast),再射线命中的目标位置创建一个点,放置一个圆,手指拖动来设置…

建设网站要多久到账东阳实惠营销型网站建设

硬件介绍 淘宝上买的核心板,大概结构如上。 直接插入电脑usb,即可实现供电、下载(控制BOOT/EN)、串口通讯 固件包 1、环境配置 1.1串口 开发板使用了 CH340G 的 USB 转串口芯片,自行安装CH340串口驱动。 1.2编译环境…

做自己视频教程的网站改变网站的域名

摘要: 通过识别BERT对话情绪状态的实例,展现在昇思MindSpore AI框架中大语言模型的原理和实际使用方法、步骤。 一、环境配置 %%capture captured_output # 实验环境已经预装了mindspore2.2.14,如需更换mindspore版本,可更改下…

去泰国做网站发网站深圳 网页制作

这几天做一个功能需要在手机上创建一个文件夹,然后往里面存储一些文件,首先得考虑用户有没有sdcard,如果有就在sdcard上创建一个指定的文件夹,如果没有则在你的工程所在的目录“/data/data/你的包名”下创建文件夹。用到的方法是&…

幕墙配件在那个网站做推广好江苏运营网站建设业务

效果图的渲染是建筑和室内设计领域中不可或缺的一步,随着技术的发展,云渲染作为一项新技术,正逐渐受到人们关注。今天,让我们深入探讨电脑渲染和云渲染这两种方法的优缺点以及它们的适用场景。 本地电脑渲染 本地电脑渲染是利用用…

网站底部友情链接做IP授权的一般看什么网站

当使用大型模型(如GPT-3.5)时,可以通过优化提示(prompt)来引导模型生成更加符合预期的内容。以下是一些调优提示词的建议: 1、清晰的问题陈述:确保你的问题或提示清晰、简明,能够准…

网站优化防范做网站给菠菜引流

近年来,随着云计算、物联网(internet of things,IOT)、移动互联网、大数据、人工智能(artificial intelligence,AI)、5G网络、区块链等新一代信息技术的逐步成熟和广泛应用,信息化已…

做家乡网站源代码仿牌外贸网站建设

两阶段提交协议 分布式事务是指会涉及到操作多个数据库的事务,在分布式系统中,各个节点之间在物理上相互独立,通过网络进行沟通和协调。 XA 就是 X/Open DTP 定义的交易中间件与数据库之间的接口规范(即接口函数),交易…

厦门入夏网站建设公司百度数据

Docker Compose 是一个强大的工具,它允许开发者通过简单的 YAML 文件定义和管理多容器的应用。本文将深入讨论 Docker Compose 的基本概念、常用命令以及高级应用场景,并通过更为丰富和实际的示例代码,助您轻松掌握如何通过 Docker Compose 打…

网站地图链接怎么做福州百度推广开户

聊城市2021年中考查分时间大约是6月27日。各普通高中要于7月10日前在校内张榜公布录取考生名单,并签发录取通知书。聊城中考录取时间各普通高中要于7月10日前在校内张榜公布录取考生名单,并签发录取通知书。所有学校均不得违规招收已被其他学校录取的考生…

怎么做网站推广最有效可以免费发外链的论坛

一、内存管理的目的和功能 内存一直是计算机系统中宝贵而又紧俏的资源,内存能否被有效、合理地使用,将直接影响到操作系统的性能。此外,虽然物理内存的增长现在达到了N个GB,但比物理内存增长还快的是程序,所以无论物理…

万网云服务器怎么上传网站吗公司网站域名无法解析

插件介绍 安卓app添加到其他应用打开原生插件,接收分享的文本和文件,支持获取和清空剪切板内容 插件地址 安卓app添加到其他应用打开原生插件,支持获取剪切板内容 - DCloud 插件市场 超级福利 uniapp 插件购买超级福利 详细使用文档 u…

网站后台不能上传百度seo找哪里

目录 Floyd算法 例题:蓝桥公园 Dijkstra算法 例题:蓝桥王国 SPFA算法 例题:随机数据下的最短路问题 总结 最小生成树MST Prim算法 Kruskal算法 例题:聪明的猴子 Floyd算法 最简单的最短路径算法,使用邻接…

海外网站cdn加速下载2015做那些网站能致富

策略模式: 策略模式是一种行为型设计模式,它允许你定义一系列算法,把它们封装起来,并且使它们可以互相替换。这样,使用算法的客户端代码可以独立于具体的算法实现方式。 就好像是你要去旅行,你可以选择多种不同的交通…

临汾做网站公司衡阳网站设计

文章目录 一、概述二、设置网络共享2.1 电脑可以上网,通过网络共享让其他设备也可以上网2.2 手机如何使用USB数据线共享网络给电脑 一、概述 现在有如下几种情况: 设备本身不能上网,需要通过电脑上网 笔记本WIFI连热点上网,然后…

o2o平台网站开发徐州市小程序制作

我在大学的时候,真的遇到一个神人,叫他小马吧。几乎没见过小马上课,第一节实验课就完成全学期所有实验,大一就自学大二课程,大四还没毕业就拿到了阿里offer,然后在我们苦兮兮找工作的时候,人家已…