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

SAP WMS开发实战:用BAPI_L_TO_CREATE_MULTIPLE搞定LT01转储单(附完整代码)

本文详细解析了SAP WMS开发中如何利用BAPI_L_TO_CREATE_MULTIPLE函数模块批量创建LT01转储单。文章深入剖析了核心参数、常见错误及实战代码框架,重点强调了源/目标存储类型等关键字段的获取方法,为系统集成与自动化流程开发提供了可靠的解决方案。

view3的博客 561

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

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

hsany330的专栏 1006

Ubuntu系统下主板GPU温控pwm风扇

在Linux系统下——以Ubuntu为例,配置主板sys_fan等接口连接pwm温控风扇转速根据NVIDIA GPU温度,为服务器GPU等无主动散热显卡提供散热。

罗思哲的博客 5032

IEC 62056协议栈深度拆解:从物理层握手到应用层AARQ,一次完整的DLMS通讯抓包分析

本文深入解析IEC 62056协议栈(DLMS/COSEM)的全流程通信机制,从物理层握手到应用层AARQ建立,提供详细的抓包分析和实战指南。涵盖RS-485配置、HDLC帧解析、OBIS编码解读等核心内容,并附有常见故障排查技巧,助力开发者高效实现电能表数据采集。

weixin_29182481的博客 311

【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

制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)

实现的功能: l APP控制月球灯 l 本地月球灯控制 l APP控制“大白”颜色,实现各种颜色变身 l 门状态传感器状态APP显示 l 网络状态指示灯,连接服务器长亮,断开后闪烁 l 配网按键 l 云端定时功能 l 云端报警提示功能 l 云端历史数据查看 l 远程升级介绍 视频演示:【开源】制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)_哔哩哔哩_bilibili 一、界面展示 ...

东小东博客 7113

Backbone之model

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

GitMind的博客 910

基于Simulink环境,提供一个关于如何对EMI抑制的DC-DC变换器进行仿真建模的示例

EMI定义:电磁干扰是指任何能中断、阻碍、降低或限制电气设备有效性能的电磁能量。重要性合规性:确保产品符合国际和地方的EMC标准。可靠性:减少因外部或内部EMI导致的系统故障风险。挑战滤波设计:合理设计输入输出滤波器以抑制传导EMI。布局与接地:良好的PCB设计对于减少辐射EMI至关重要。屏蔽:使用金属屏蔽来保护敏感电路不受外界干扰。首先明确要模拟的任务内容。设计一个能够在高频操作下有效抑制EMI的DC-DC变换器。根据工作频率和谐振元件值确定合适的滤波器参数。

xiaoheshang_123的博客 144

Unity小游戏接入抖音敏感词检测

摘要: 本文介绍了Unity小游戏接入抖音敏感词检测的方法。抖音官方提供了两种API:SensitiveWordCheck用于检测敏感词,ReplaceSensitiveWords用于替换敏感词。此外,若使用键盘输入事件,可通过tt.onKeyboardComplete监听回调,平台会自动屏蔽敏感词(替换为*)。接入官方字库可有效避免审核驳回,适用于小游戏中的用户输入功能(如起名系统)。附官方文档链接及参数说明。

类人_猿的博客 4592

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

Python与网络爬虫案例:电影评论抓取

接下来,我们就可以通过分析该页面中的HTML代码,来确定需要抓取的内容。在这段代码中,我们首先对每个评论div元素进行for循环,然后通过find方法获取class为'title'、'text'、'rating-other-user-rating'的元素,并将结果分别赋值给title、content和rating变量。在这段代码中,我们首先定义了目标网站的URL和headers信息,然后通过requests.get方法向目标网站发送了一个GET请求,并将返回的响应赋值给了response变量。

吃不胖. 1262

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

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

weixin_36414864的博客 401

【Claude Code 源码解析教程】第25章:测试与调试

Claude Code 作为复杂的 AI 编程助手,测试与调试是保证质量的关键环节。项目建立了完善的测试体系,包括单元测试、集成测试、端到端测试等多个层次,同时提供了丰富的调试工具和技巧。

rengang66的博客 209

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Backbone中的Model使用方法

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

winstar1688的专栏 403

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

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

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

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、付费专栏及课程。

余额充值