自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(551)
  • 收藏
  • 关注

原创 一个经历IT红利期的程序员语录

9年前,你可能在互联网职场上,凭借三流的java技术底子,会点增删改查,北上广深的互联网企业,每天都有数不清的面试邀请,众多offer中挑选一个中意的,就能马上安排入职上班。到了公司部门,其他同事也是看你高人一等的存在,对你们的工作充满了好奇和敬佩,每当老板催促项目开发进度的时候,也是你人生光辉的时刻,多次催促未果,也会邀你去办公室喝茶,公司老板亲自给你沏茶,递上华子,茶过三旬,便问项目什么时候可以提上进度,下面市场部要急需使用和开展业务。

2025-03-28 10:11:03 235

原创 又是一年的程序员节日

加入CSDN第八个年头了,祝愿越来越好。

2024-10-24 13:55:26 300

原创 扩展DOM有什么问题

通过扩展,方法和属性能被直接地添加到对象上,或者直接扩展到它们的原型(prototype)上,如果运行环境支持的话(火狐是支持在DOM对象的prototype上直接扩展的,而ie不支持)。令人不安的是,这个看似不错的做法的缺点并不是那么的众所周知。没有冲突,不需要处理宿主对象这样疯狂的行为,漏洞更加容易管理,更容易在不正常的MSHTML DOM上操作,更好的性能,健全的维护和无痛的缩放。至于我所忧虑的,所有的核心开发者已经都明白了以上提到的问题,封装是在一个健全的发展方向。而且不幸的是,这不只是一个理论。

2024-07-31 15:18:21 864

原创 MVVM框架学习第13篇--avalonjs v6.1

本次更新,带来了几个新API,提供了更好的性能。此外,实现一大堆UI组件,包括。

2024-07-28 15:52:16 353

原创 MVVM框架学习第12篇--avalon介绍

MVVM划分三层,M,VM,V,M是原始数据,用于转换为VM,VM管理状态与绑定回调,V通过绑定得到VM的状态与回调,渲染页面,绑定事件,切换类名,什么脏活都揽了——但用户只需要声明。比如if(aaa){}语句中的aaa,就是表示true与false,switch(bbb){}语句,它表示有多个值的状态,就像有人幼年,童年,少年,青年,中年,老年这几个阶段,它们都指向同一个东西。许多人都知道MVVM是MVC的一个变体,但那些MVC是在后端的,包括微软的WPF,这意味着这个V与我们前端接触到的V差别很大。

2024-07-26 15:59:24 1173

原创 MVVM框架学习第11篇--avalon 性能提高

早在avalon在chrome与firefox有较为严重的性能问题,chrome等则由于它们太逆天因此看不出。主要原因是动态插入节点时,each由于一些帮方法考虑不周,结果不得不逐个插入,虽然使用了nextTick进行缓冲,但延迟明显。然后avalonjs v5把大体的架构完成了,然后重点改良这些方法了。在v5.1中所有延迟都没有了,算是一次非常出色的改进。

2024-07-24 23:50:58 207

原创 MVVM框架学习第十篇--avalon v0.5版本

为了方便编写控件,本次升级就是整合了一个迷你的三百行的迷你jQuery进去。主要更新如下:添加强大的UI绑定与自定扫描功能,让你一行JS也不用写生成UI。UI绑定的格式为ms-ui-opts?=uiName。opts为VM中的对象名,uiName为控件名,UI会自动寻找data-id的值作为ViewModel的ID,然后你就可以在avalon.models[id]得到它。UI控件会优先使用data-*的值来作为UI的配置项,设计基本同bootstrap。

2024-07-22 20:25:43 696

原创 MVVM框架学习第十篇--avalon v0.4版本

与其他框架比较,它体积更少,在主要的几个MVVM框架(拥有双向绑定机制),knockout是三千多行,angularjs 1.6万, emberjs2-3万行, winjs是几M, kendoui是几M!动用一切可使用的访问器,及时定向地通知双向绑定链的上层(复合型的Computed属性,监控数组,根据绑定值编译而成的求值函数,视图刷新函数)。让用户写代码更少,上手难度,与knockout差不多,但借鉴了angularjs的,更为易用。节点移除时,智能卸载对应的视图刷新函数,节约内存。

2024-07-21 19:10:03 240

原创 MVVM框架学习第九篇--todos例子

每个MVC框架都爱搞个todos演示。

2024-07-21 18:58:31 218

原创 MVVM框架学习第八篇--集合处理

avalon的一个理念是,操作数据即操作DOM。这是集合处理中表现最明显。涉及到each绑定,及集合访问器的一系列方法。

2024-07-21 18:54:26 186

原创 MVVM框架学习第七篇--事件绑定与代理

data-on-type="callback | selector" type为事件类型,callback为事件回调, selector为选择器,使用事件代理。data-on-type="callback" type为事件类型,callback为事件回调,使用事件绑定。这涉及到on绑定,表现形式为。

2024-07-21 18:26:48 249

原创 MVVM框架学习第六篇--类名切换

data-class-className="boolean",className为要处理的类名,值为一个布尔,用于决定删除或添加。data-class="object", object在VM中是个对象,它的键名即类名,由值的真假情况决定删除或添加。data-class="string",string为要你要添加的类名。class绑定是用于添加或删除类名。

2024-07-20 20:01:46 255

原创 MVVM框架学习第五篇--流程相关

比如上面这HTML,元素为DIV,绑定器的名字为data-*的属性名的第二个单词on,亦即为事件绑定器,参数为它去掉data-on-剩下的单词,亦即要用到mouseover事件,回调是属性值,enableDetails可能是访问器也可能是命令,这由用户在ViewModel中定义。不过通常情况下它是个普通的函数。each绑定在HTML表现为data-each-*-*,其中第一个*为值,第二个*为键名,*只是一个占位符,只要是合法的变量名就OK。在数组中,每一个*你可以称之为元素,第二个为元素的索引值。

2024-07-20 19:59:22 264

原创 MVVM框架学习第四篇--数据填充

数据填充涉及到text, html, value这三种绑定。value分为单向绑定与双向绑定两种,data-value-one为单向的,data-value为双向的。

2024-07-20 19:55:08 171

原创 MVVM框架学习第三篇

状态的由来有两个,直接从模型得到,比如后端传送过来的JSON与XML,或比较悲剧地把PHP序列化的字段还原出来,第二种是在程序中控制流程时不生的中间量。如果一个字段由模型中的两个属性,或两个以上,或要对这属性进行一下加工才产生它的值呢,这就要用到组合访问器,相当于ko的依赖监控属性,或emberjs中的computed。avalon会将这个属性的名字分解成绑定器与其他参数,再将它的值得到VM中对应的访问器与命令,最后把它们构建成一个叫DOM访问器的东西,作为双向绑定链的顶层,专门与DOM打交道。

2024-07-19 21:28:34 876

原创 MVVM框架学习第二篇

【代码】MVVM框架学习第二篇。

2024-07-18 10:34:02 355

原创 MVVM框架学习第一篇

如果我们把DOM操作看成增删改查,那么原始的DOM API相当于直接用二进制手段暴力去改数据库,而像jQuery等主流库提供了强大的选择器引擎与DOM操作函数,相当于发明SQL,而像knockout.js这样的MVVM框架拥有尖端的依赖链机制、双向绑定,让智能的集化操作,事务与锁成为可能,是DOM级别的“ORM系统”!基于选择器的方式是最不可靠的,因为视图的变更最频繁,某一天PM说要多加一功能或不要一功能,于是就多几个父节点或少几个子节点,把HTML的层级关系搞得乱七八糟,我们的选择器寻找就得重写一次!

2024-07-17 09:16:22 262

原创 newland框架

newland框架

2024-07-16 00:15:10 183

原创 html全部标签和使用

【代码】html全部标签和使用。

2024-07-15 12:42:52 242

原创 couchDB学习笔记

插入新记录,记录在nosql数据库大多数称之为文档.它要求有一个UUID,你就随便造一个吧。在一个数据库内插入一条记录,因为上面的aaa被我们删掉了, 我们就再搞个albums。当然,上面这样搞出来的UUID太不安全了,因此你可以利用couthDB给你的UUID。注,不能重复创建相同数据库,我们试再发一次上面的请求,会返回上面请求。我们再把刚才保存的文档取出来吧,就是数据库加ID名,GET请求。删除一个数据库就用DELETE请求,path为数据库名。创建一个数据库,为PUT请求,path为数据库名。

2024-07-14 08:25:38 233

原创 简述domReady

等等,这些东西都会影响到DOM树的构建过程.因此在这时候,当我们贸贸然,使用getElementById, getElementsByTagName获取元素,然后操作它们, 就会有很大机率碰到 元素为null的 异常. 这时, 目标元素还可以没有转换为DOM节点, 还只是一个普通的字符串呢!另一个影响DOM树构建的因此是iframe,它也会加载资源, 虽然不会堵塞DOM构建,但它由于是发出HTTP请求,而HTTP请求是有限,它会与父标签的其他需要加载外部资源的标签产生竞争。

2024-07-13 16:47:53 779

原创 SlidesJS响应式 jQuery 幻灯片插件

SlidesJS 是一款老牌的 jQuery 幻灯片插件,经过多年的发展,已经成为一款功能齐全,设计精巧的幻灯片插件。支持循环、自动播放功能和淡入淡出过渡效果,并且能够自动生成分页,可以帮助开发者制作出优雅的幻灯片效果。

2024-07-10 21:05:14 220

原创 javascript测试函数运行速度

通常我们需要对函数进行优化,一般的做法是开始的时候获得时间,结束的时候再获得一次时间,两次时间相减就能到到花费的时间。而函数运行速度之快,基本上都是毫秒级的。下面给出的函数就是就此准备的。测试各种循环的效率,for...in这样慢的循环就不测了!

2024-07-10 15:39:44 211

原创 各大类库的类工厂

它应该是所有框架中最复杂也是最强大的,涉及的API就有Mutator Extends Implements还有从Type继承过来的extend implement,它内部拷贝父类属性还用到了深拷贝!supperclass 有两个作用:一是可以用来调用父类的方法,二是可以通过 supperclass.constructor 调用父类的构造函数。由Class.create来创建父类,然后通过父类的extend方法加个属性包创建子类.它有三个参数,类名,父类,与一个对象,里面包含构建这个类的材料。

2024-07-10 10:21:44 278

原创 为什么加载 JavaScript 使用 “src“,CSS 使用 “href“?

至于说为什么当初就决定外部样式表用link href来链接,而不是用style src来载入,可能是因为先贤们认为样式表更符合外部链接资源的特征,它更接近附属的资源,而不是内嵌的内容。不过HTML5或者将来的HTML还是会遵循这种设计的,比如video/audio元素中的src属性。理论上说,src表达的是该元素的内容将被整体替换。比如img元素、script元素、iframe元素都是如此。胎死腹中的XHTML2中就将src属性推广到了所有元素。胎死腹中的XHTML2也将href属性推广到了所有元素。

2024-07-10 10:11:42 149

原创 表单元素的下拉系

optgroup只是装饰用,对提交数据没有影响,当我们选中某个option元素时,它的selected属性就变成true,之前被选中的元素的selected属性变成false,select元素中selectedIndex的值会变成被选元素的序号(它在所有option元素的位置 )。select的值就是被选中的option元素的值,如果用户定义value属性,那么这值就是option.value,否则就是option的innerHTML,也就是option.text。除了第一个参数,其他都是可选的,相当于。

2024-07-10 10:08:08 1297

原创 表单元素的图形系

多边形:shape="polygon",coords="x1,y1,x2,y2,x3,y3,...":每一对 "x,y" 坐标都定义了多边形的一个顶点("0,0" 是图像左上角的坐标)。说起图形系,可能有人马上想到,可惜那是谬误,不要想当然,那是一个提交按钮。矩形:shape="rectangle",coords="x1,y1,x2,y2":第一个坐标是矩形的一个角的顶点坐标,另一对坐标是对角的顶点坐标,"0,0" 是图像左上角的坐标。这可以用判定是否真实用户提交。

2024-07-10 09:54:41 435

原创 HTML自动刷新页面

动态插入meta的支持情况,chrome, opera, safari支持。不过也不是完全没有办法,使用document.write就可以了。上面写表示零秒(亦即“立刻”的意思)跳转到aaa.html页面。如果砍掉后面的URL,即表示每隔10秒重刷页面一次。

2024-07-10 09:30:28 583

原创 HTML5 预加载功能

HTML5对link的rel属性添加N多值,其中最有用的就是预加载功能了。它比网上提到图片预加载有时不同,它的加载时机是由浏览器决定的,只有在空闲时间才偷偷加载指定资源,防止一下子加载这么多东西把页面卡死。当然这不只敢于HTML页面,还可以是图片,JS,HTML等资源。这对于我们加快页面载入速度非常有帮助。支持浏览器Firefox 3.5+,chrome 13+。

2024-07-10 09:25:20 303

原创 JavaScript验证框架

每一个表单都有一个与它name值同名的类名,并且还有span标签用于放置错误消息,span里面有个em元素,它的类名比控件的类名多了一个“err_”前缀!如果有一些验证一定要在后端,那么发现出错,就把它们放到一个对象中,格式{类名:出错提示,类名2:出错提示2,类名3:出错提示3},即。工作中经常要进行表单验证,一个网站做下来,自己也积累了一套。框架的两个核心方法,一个是用于处理提示信息,另一个是调用验证函数!

2024-07-09 23:54:34 197

原创 12个很好用的JavaScript 框架分享

12个很好用的JavaScript 框架分享

2024-07-08 08:20:53 1616

原创 ruby的实例方法(写方法,读方法与读写方法)

ruby比java实现setter与getter更灵活多变。

2024-07-08 07:38:31 191

原创 javascript和ruby合并排序

【代码】合并排序。

2024-07-08 07:33:05 133

原创 ruby 对文件的操作

但这有时可能出现不能添加中文内容的情况,报“invalid multibyte char (US-ASCII) ”错误,我们就要在当前脚本的最上面添加这么一下注释,就没事了,即。创建一个新文件,并往其里面添加内容。后一种能确保文件用完后被关闭。

2024-07-08 07:29:23 260

原创 ruby的super

【代码】ruby的super。

2024-07-08 07:23:22 165

原创 前端开发25 个 JavaScript 单行代码

在上面的例子中,如果把?位运算符 (>>>) 确保了即使未找到点号 (.) ,操作也是安全的,因为在这种情况下仍然会返回一个空字符串。其中Object.values(obj)将对象所有的属性值提取为数组,然后使用展开运算符将数组的所有元素作为Math.max函数的参数进行最大值查找。其中Object.values(obj)用于获取对象中所有的值的数组,然后通过includes(value)检查指定值是否在该数组中。它将会从数组中删除所有假值( 0,false,null,undefined,'',NaN)。

2024-07-06 10:25:59 947

原创 Astro 提供两种类型的图片服务

getURL() 指向的本地端点可以同时调用 parseURL() 和 transform()。两种类型的服务都可以提供 getHTMLAttributes() 来确定输出 和 validateOptions() 的其他属性,以验证和增强传递的选项。对于这两种类型的服务,options 是用户作为 组件的属性或作为 getImage() 的选项传递的属性。要创建你自己的本地服务,你可以指向 内置端点 (/_image),也可以另外创建你自己的可以调用服务方法的端点。

2024-07-05 17:02:13 746

原创 使用Astro 最详细搭建网站以及部署方案

这里我们不会从零到一的去介绍 Astro 的写法,感兴趣的同学可以简单从官网过一遍入门指南(https://docs.astro.build/zh-cn/getting-started),我们要做的就是依靠 Astro 强大的主题模板,实现只需要改改文字、写一写 Markdown 就能轻松搭建一个漂亮的博客网站!没错,依靠 Astro 强大的主题生态就可以帮助我们快速完成这些事情!如果是以前,我可能会挑一个自己熟悉的语言去快速开发,但是现在你问我选什么技术栈,我可能会选择 Astro,为什么?

2024-07-05 16:28:43 4936 1

原创 jQuery学习笔记第三篇

下面添加新的能力时就用jQuery.extend求添加,就像Prototype的Object.extend,mootool的Native.implement,Base2的Base.extend,Ext的apply,凡此种种,把一个属性包或独立的方法名与方法体作为参数加入目标对象中。就像一个茧,jQuery对象包裹着一个或复数个DOM对象,jQuery对象的能力来自其prototype,而其prototype的方法则是jQuery.prototype的一个副本。

2024-07-05 01:58:14 242

原创 jQuery学习笔记第二篇

因此,init之后,作者就放心地往jQuery的原型添加方法。而这些原型更多的时候是往外调用其静态方法来工作。一开始,都是一些用于构建类数组的东西。接着下来分析append,prepend,before,after。内部实现非常复杂,先扼要类比一下已有的API吧。jQuery用init方法创建的,它是jQuery.fn.init的实例而非jQuery的实例,后期会用。这些方法内部都调用一个叫domManip的方法,它的存在价值仅仅是为了兼容火狐。把相应的能力从jQuery.prototype搬运到。

2024-07-04 23:19:06 251

git全家桶安装包附加安装和使用教程

git全家桶安装包附加安装和使用教程

2024-06-25

剪辑软件全家桶:PS、PR、AE等涵盖所有年份版本

剪辑软件全家桶:PS、PR、AE等涵盖所有年份版本

2024-06-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除