3、backbone中的model实例

DMA技术原理与PSoC平台实战指南 直接内存访问(DMA)是计算机系统中实现高效数据传输的核心技术,其核心原理是通过专用控制器实现外设与内存间的直接数据搬运,无需CPU介入。从硬件架构来看,DMA系统由控制器(DMAC)、通道仲裁机制和数据通路构成,类似PSoC芯片中的PHUB架构。该技术通过传输描述符(TD)机制实现任务调度,支持点对点、数组传输等基础模式,以及乒乓缓冲、多路复用等高级模式。在嵌入式开发中,DMA技术能显著提升I/O效率,特别适用于ADC采样、实时信号处理等场景。PSoC平台通过PHUB架构提供8条独立数据总线,结合图形化配 阅读详情

关于backbone,最基础的一个东西就是model,这个东西就像是后端开发中的数据库映射那个model一样,也是数据对象的模型,并且应该是和后端的model有相同的属性(仅是需要通过前端来操作的属性)。

下面就从实例来一步一步的带大家来了解backbone的model到底是什么样的一个东西。

首先定义一个html的页面:

<!DOCTYPE html>
<html>
<head>
    <title>the5fire-backbone-model</title>
</head>
<body>
</body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.4/underscore-min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>
<script>
(function ($) {
/**
  *此处填充代码
  **/
})(jQuery);
</script>
</html>

下面的代码需要填到这个html的script标签中的function中。

1、最简单的一个对象 ​

Man = Backbone.Model.extend({
        initialize: function(){
            alert('Hey, you create me!');
        }
    });
var man = new Man;

这个就很简单了,在helloworld里面也有了一个model的展现,不定义了属性,这里是一个 初始化时的方法,或者称之为构造函数。​​

2、对象赋值的两种方法

第一种,直接定义,设置默认值。

Man = Backbone.Model.extend({
        initialize: function(){
            alert('Hey, you create me!');
        },
        defaults: {
            name:'张三',
            age: '38'
        }
    });
    
    var man = new Man;
    alert(man.get('name'));

第二种,赋值时定义

Man = Backbone.Model.extend({
        initialize: function(){
            alert('Hey, you create me!');
        }
    });
    man.set({name:'the5fire',age:'10'});
    alert(man.get('name'));

取值的时候都是用get。

3、对象中的方法

Man = Backbone.Model.extend({
        initialize: function(){
            alert('Hey, you create me!');
        },
        defaults: {
            name:'张三',
            age: '38'
        },
        aboutMe: function(){
            return '我叫' + this.get('name') + ',今年' + this.get('age') + '岁';
        }
    });
    var man = new Man;
    alert(man.aboutMe());


4、监听对象中属性的变化

Man = Backbone.Model.extend({
        initialize: function(){
            alert('Hey, you create me!');
            //初始化时绑定监听
            this.bind("change:name",function(){
                var name = this.get("name");
                alert("你改变了name属性为:" + name);
            });
        },
        defaults: {
            name:'张三',
            age: '38'
        },
        aboutMe: function(){
            return '我叫' + this.get('name') + ',今年' + this.get('age') + '岁';
        }
    });
    var man = new Man;
    man.set({name:'the5fire'})  //触发绑定的change事件,alert。


5、为对象添加验证规则,以及错误提示

Man = Backbone.Model.extend({
        initialize: function(){
            alert('Hey, you create me!');
            //初始化时绑定监听
            this.bind("change:name",function(){
                var name = this.get("name");
                alert("你改变了name属性为:" + name);
            });
            this.bind("error",function(model,error){
                alert(error);
            });
        },
        defaults: {
            name:'张三',
            age: '38'
        },
        validate:function(attributes){
            if(attributes.name == '') {
                return "name不能为空!";
            }
        },
        aboutMe: function(){
            return '我叫' + this.get('name') + ',今年' + this.get('age') + '岁';
        }
    });
    var man = new Man;
    man.set({name:''}); //根据验证规则,弹出错误提示。


6、对象的获取和保存,需要服务器端支持才能测试。

首先需要为对象定义一个url属性,调用save方法时会post对象的所有属性到server端。

Man = Backbone.Model.extend({
        url:'/save/',
        initialize: function(){
            alert('Hey, you create me!');
            //初始化时绑定监听
            this.bind("change:name",function(){
                var name = this.get("name");
                alert("你改变了name属性为:" + name);
            });
            this.bind("error",function(model,error){
                alert(error);
            });
        },
        defaults: {
            name:'张三',
            age: '38'
        },
        validate:function(attributes){
            if(attributes.name == '') {
                return "name不能为空!";
            }
        },
        aboutMe: function(){
            return '我叫' + this.get('name') + ',今年' + this.get('age') + '岁';
        }
    });
    var man = new Man;;
    man.set({name:'the5fire'});
    man.save();  //会发送POST到模型对应的url,数据格式为json{"name":"the5fire","age":38}
    //然后接着就是从服务器端获取数据使用方法fetch([options])
    var man1 = new Man;
    //第一种情况,如果直接使用fetch方法,那么他会发送get请求到你model的url中,
        //你在服务器端可以通过判断是get还是post来进行对应的操作。
    man1.fetch();
    //第二种情况,在fetch中加入参数,如下:
    man1.fetch({url:'/getmans/'});     
        //这样,就会发送get请求到/getmans/这个url中,
        //服务器返回的结果样式应该是对应的json格式数据,同save时POST过去的格式。

    //不过接受服务器端返回的数据方法是这样的:
    man1.fetch({url:'/getmans/',success:function(model,response){
            alert('success');
            //model为获取到的数据
            alert(model.get('name'));  
        },error:function(){
            //当返回格式不正确或者是非json数据时,会执行此方法
            alert('error');
        }})

注:上述代码仅仅均为可正常执行的代码,不过关于服务器端的实例在后面会有。

这里还要补充一点,就是关于服务器的异步操作都是通过Backbone.sync这个方法来完成的,调用这个方法的时候会自动的传递一个参数过去,根据参数向服务器端发送对应的请求。比如你save,backbone会判断你的这个对象是不是新的,如果是新创建的则参数为create,如果是已存在的对象只是进行了改变,那么参数就为update,如果你调用fetch方法,那参数就是read,如果是destory,那么参数就是delete。也就是所谓的CRUD (“create”, “read”, “update”, or “delete”),而这四种参数对应的请求类型为POST,GET,PUT,DELETE。你可以在服务器根据这个request类型,来做出相应的CRUD操作。

PS:忘了解释关于url和urlRoot的事情了,如果你设置了url,那么你的CRUD都会发送对应请求到这个url上,但是这样又一个问题,就是delete请求,发送了请求,但是却没有发送任何数据,那么你在服务器端就不知道应该删除哪个对象(记录),所以这里又一个urlRoot的概念,你设置了urlRoot之后,你发送PUT和DELETE请求的时候,其请求的url地址就是:/baseurl/[model.id],这样你就可以在服务器端通过对url后面值的提取更新或者删除对应的对象(记录)。

​关于这个Backbone.sync以后可能会说到,不过目前先以简单入门为主。

本文链接: http://www.the5fire.com/3-backbone-model.html

YOLOv5 7.0 自定义Backbone实战:从ResNet到你的专属网络,保姆级配置文件与模型文件改造教程 本文详细介绍了如何在YOLOv5 7.0中自定义Backbone,从ResNet到专属网络的改造过程。通过保姆级教程,包括配置文件与模型文件的协同改造、预训练权重迁移技巧等,帮助开发者高效实现目标检测模型的优化与性能提升。 阅读详情

相关推荐

maskrcnn-benchmark 代码详解之 backbone.py

前言 在backbone.py文件中,定义了各种不同的backbone结构,并使用Registry装饰器类来实现构造这些backbone结构函数的调用。指的一提的是,backbone.py将不同的模块搭建出拥有不同功能的backbone结构,为边框预测等操作提供各自合适的特征提取网络; 其中Resnet的第2个stage非常重要,因为第一个阶段就是对原始图像的一次粗糙的特征提取,从第二阶段开始...

leijieZhang的博客 4069

通用大模型研究重点之四:backbone model

语言模型

yunxinan的专栏 417

PLC模拟量输入电路设计:±10V与±20mA信号调理全解析

在工业自动化和数据采集系统中,模拟量输入是连接物理世界与数字控制的核心桥梁。无论是变送器输出的4-20mA电流环,还是伺服驱动与信号发生器提供的±10V电压信号,PLC和采集模块都需要在复杂现场环境下稳定、精准地完成信号采集。理解信号体制的原理——电流环抗长线干扰、电压环响应快——是设计模拟输入前端的基础。通过精密电阻网络实现分压与采样,利用运放完成双极性到单极性的电平搬移,配合TVS与滤波电路保障可靠性,并经过ADC量化与校准流程,最终构建出兼顾精度、成本和工业级鲁棒性的完整信号链路。本文面向硬件工程师与

weixin_29163797的博客 295

Backbone入门指南(四):Model(数据模型)

7.Model (数据模型)   Model是Backbone中所有数据模型的基类,用于封装原始数据,并提供对数据进行操作的方法,我们一般通过继承的方式来扩展和使用它。   如果你做过数据库开发,可能对ORM(对象关系映射)不会陌生,而 Backbone中的Model就像是映射出来的一个数据对象,它可以对应到数据库中的某一条记录,并通过操作对象,将数据自动同步到服务器数据库。(下 一节

hsany330的专栏 1006

Blender----利用DEM(tif)生成三维模型

利用DEM(tif)生成三维模型

LongJ_Sir的博客 5420

VSCode配置C/C++语言环境(小白专用保姆教程)(超细)

VSCode配置C/C++语言环境(小白专用保姆教程)(超细)

ITQWQ的博客 8228

【SSD 代码精读】之 model (Backbone)& loss

到此,我们的backbone 就构建好了,backbone 就是 resent-50 前半截,下面我们在backbone 的基础上,继续搭建起 model。后面几层的特征层输出分别为 (512,19,19)、(512,10,10)、(256,5,5)、(256,3,3)(256,1,1)3、累加 4个 位置的参数 ,即 将每个 box 的 ctr_x、ctr_y、w、h 的 loss 进行相加。在 backbone 的基础上,重新设计后半截的网络,构成完整的网络,用于特征层的输出,如下图。

weixin_37804469的博客 911

14、网络切片技术:原理、应用与挑战

本文详细探讨了网络切片技术的原理、应用场景及其在5G网络中的重要性。网络切片作为一种关键的网络架构技术,能够在同一物理网络上创建多个独立的逻辑网络,以满足不同应用对安全性、可靠性和性能的多样化需求。文章深入分析了网络切片在5G、SDN/NFV等技术背景下的发展与挑战,并探讨了其在制造业、交通运输、零售等多个行业的实际应用。此外,还介绍了网络切片的部署流程、未来发展趋势以及相关技术难点,为读者全面了解网络切片技术提供了有价值的参考。

palm99的专栏 253

Backbone之model

model的创建 model是Backbone四大组件之一,创建的方式与之前的View方式类似,继承已有的model类,model类中也有initialize()方法,当model初始化时便调用该方法。 model类中有defaults属性,作为预定义的值,即该类默认属性初始值: model数据set与get 我们知道,在后端mvc框架中,一般都为model层的类实现了

GitMind的博客 910

innovus:像ICC2一样设置placement label

ICC2有placement label/placement rule功能,能控制各种类型cell 之间的spacing规则,包括top和bottom edge的spacing。innovus也有相同的功能,以下示例方便大家了解用法。我们需要给所有OAI* cell之间设置一个spacing rule,让他们不要上下或者挨着。效果如下图,这个spacing指的是同一边的间距,不是cell间距。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 833

【第48例】BLM模型之市场洞察-五看工具篇(一)

BLM市场洞察

产品线负责人 2108

Backbone1.0.0数据验证的变化

0.5.3版本对Model数据验证时,绑定Error就可以了: (function(){ var Model = Backbone.Model.extend({ initialize : function(){ this.bind('error',function(model,...

Web前端开发——Kingwell's Blog 205

【YOLOv8科研级优化】基于YOLOv9的GELAN模块重构C2f结构,实现精度与效率的同步提升

打开确保模型解析器能识别GELANBlock模块。通过将YOLOv9的GELAN模块集成到YOLOv8的C2f模块中,我们实现了一个“强特征表达+高效计算”的目标检测模型。这个改进不仅在工程上能提升复杂场景下的检测效果,更在科研上提供了“多分支特征融合”的创新思路——这种思路可以延伸到其他检测网络(如Faster R-CNN、SSD)的改进中,帮你在论文中打造独特的研究点。

know_F0727的博客 201

backbone ajax 例子,Backbone.js框架中Model与Collection的使用实例

Model关于backbone,最基础的一个东西就是model,这个东西就像是后端开发中的数据库映射那个model一样,也是数据对象的模型,并且应该是和后端的model有相同的属性(仅是需要通过前端来操作的属性)。下面就从实例来一步一步的带大家来了解backbone的model到底是什么样的一个东西。首先定义一个html的页面:the5fire-backbone-model(function ($...

weixin_36414864的博客 401

【tio-websocket】15、学习tio的第1步—tio-study

tio-study 是用于学习 t-io 的示范工程,tio-study 是入门 t-io 最好的方式!tio-study 工程演示的是一个典型的 TCP 长连接应用工程,分为 server(服务端) 和 client(客户端) 工程,server 和 client 共用 common(公共模块) 工程

JACKAL 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Backbone中的Model使用方法

   通过Backbone.Model.extend()的形式,创建一个Model,该Model可以作为一个构造函数用于创建更多的Model实例。      1 初始化方法:initialize initialize: function(){}        2 默认值:defaults defaults: {}      3 存取器:get/set/unset model....

winstar1688的专栏 403

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

backbone中的model实例

3、backbone中的model实例[验证部分更新1.0.0] 8259°C 作者:the5fire | 标签: backbone.js入门  | 发布:2012-03-25 3:17 p.m. 关于backbone,最基础的一个东西就是model,这个东西就像是后端开发中的数据库映射那个model一样,也是数据对象的模型,并且应该是和后端的model有相同的属性(仅是需要通过前

dftwilson的专栏 413

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

backbone实例01

  backbonejs往简单说,就是一前端MVC框架,适合用于单页面、复杂的前端逻辑。   直接上代码,里面都有相关注释,重点是理解清楚view、collection、model这三者如何关联调用。 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="co...

dicang4263的博客 175

backbone.Model 源码笔记

backbone.Model backbone的model(模型),用来存储数据,交互数据,数据验证,在view里面可以直接监听model来达到model一改变,就通知视图. 这个里面的代码是从backbone里面剥离出来,然后一点一点研究和调试出来的,可以单独运行,依赖underscore,jquery或者是zepto event.js是剥离出来的Backbone.Even...

apr40151的博客 228

4、backbone的collection实例

collection是model对象的一个有序的集合,概念理解起来十分简单,在通过几个例子来看一下,会觉得更简单。 1、关于book和bookshelf的例子 Book = Backbone.Model.extend({ default : { title:'default' }, initialize: function(){ //alert('Hey, you creat

the_fire的技术博客 1万+

Backbone.js 中使用 Model

JavaScript 的 Model 是一个 JSON 对象,差不多,不过 Backbone 赋予 Model 默认属性,只能通过 getter/setter 方法来访问 Model 中的属性值,不能直接用点操作符,相当于 Backbone 的属性是私有的。 声明 Model 类 var Person = Backbone.Model.extend({ defaults : {...

a3060858469的博客 754

Backbone的model学习笔记一

model故名思议,就是一个模型。和java后端开发的数据库映射的model是一样的性质。 下面让我们一起来揭开她神秘的面纱: 首先准备一个html模板: backbone的model学习/title> 。。。。。。。 这里面就是model代码的编写区域 1、定义一个model对象,并且初始化她 var People = Bac

慕言的博客 496

Backbone入门基础 - Model和View基本用法

简单介绍Backbone的Model和View的基本用法以及两者间的关系,并提供用法实例

Joyce的前端日常 4362

backbone之model.destory()不发送delete请求

前段时间学习了backbone.js,蛮喜欢。最近着手做我的第二个网站todo,拿backbone来练手。todo网站呢,我计划做成跟trello一样的功能,用于项目管理及计划安排。项目中使用grunt进行构建,服务器采用nodejs+mongodb,前端采用html5,css3,jquery,backbone.js。 昨天在编写前端代码的时候,发现model.destory()不发送del

wuyajun1124的专栏 1042
上一篇: 2、通过helloworld来认识下backbone
下一篇: 4、backbone的collection实例
the_fire
博客等级 码龄18年 662粉丝 257原创
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值