AMD规范及require.js用法(Javascript模块化编程)

网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等……开发者不得不使用软件工程的方法,管理网页的业务逻辑。Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。Javascript社区做了很多努力,在现有的运行环境中,实现”模块”的效果。本文总结了当前"Javascript模块化编程"的最佳实践,说明如何投入实用。虽然这不是初级教程,但是只要稍稍了解Javascript的基本语法,就能看懂。

一、原始写法

模块就是实现特定功能的一组方法。

只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块。

function m1(){

//…

}

function m2(){

//…

}

上面的函数m1()和m2(),组成一个模块。使用的时候,直接调用就行了。

这种做法的缺点很明显:”污染”了全局变量,无法保证不与其他模块发生变量名冲突,而且模块成员之间看不出直接关系。

二、对象写法

为了解决上面的缺点,可以把模块写成一个对象,所有的模块成员都放到这个对象里面。

var module1 = new Object({

_count : 0,

m1 : function (){

//…

},

m2 : function (){

//…

}

});

上面的函数m1()和m2(),都封装在module1对象里。使用的时候,就是调用这个对象的属性。

module1.m1();

但是,这样的写法会暴露所有模块成员,内部状态可以被外部改写。比如,外部代码可以直接改变内部计数器的值。

module1._count = 5;

三、立即执行函数写法

使用”立即执行函数”(Immediately-Invoked Function Expression,IIFE),可以达到不暴露私有成员的目的。

var module1 = (function(){

var _count = 0;

var m1 = function(){

//…

};

var m2 = function(){

//…

};

return {

m1 : m1,

m2 : m2

};

})();

使用上面的写法,外部代码无法读取内部的_count变量。

console.info(module1._count); //undefined

module1就是Javascript模块的基本写法。

文章来源:http://www.darewe.com/news/news-146.html

批量修改Mysql数据库的数据表前缀方法

多个网站共用一个Mysql数据库时,为使数据库管理不混乱,一般采用不同的网站使用不同前缀名的方式进行区分。而如何批量修改已有数据库的前缀名呢?全部导出修改后再导入?还是一个表一个表的修改?今天道维网络要介绍的是相对简单的批量修改数据库中表前缀的方法,适用于修改数据库中相同前缀且数据表较多的情况。

批量修改Mysql数据表前缀的方法

假定修改名为“host881_1”的数据库中前缀为“liukun_”的表,并将所有符合条件表的前缀修改为“darewe_”。

用phpMyAdmin打开要修改前缀的数据库host881_1,执行以下SQL语句(其中加粗斜体字是需要根据实际需求替换的):

Select CONCAT( ‘ALTER TABLE ‘, table_name, ‘ RENAME TO ‘, replace(table_name,’liukun_’,’darewe_’),’;’)

from information_schema.tables where TABLE_SCHEMA = ‘host881_1’ and table_name LIKE ‘liukun_%’;

批量修改Mysql数据表前缀的方法

在执行SQL语句生成的页面上点击“导出”,选择“自定义”->“直接显示为文本”,CSV格式,清空“内容分隔符”为空。

?

执行导出功能后,到达结果窗口如下,复制文本框中的内容:

批量修改Mysql数据表前缀的方法?

进入数据库“host881_1”的SQL执行窗口,将代码粘贴到SQL文本框中,执行。看一下相关数据表是不是已经修改完成了。

合肥网站建设公司道维网络提醒各位数据操作有风险,请在操作前备份数据。由于软件版本等原因,操作仅供参考,因本文修改数据库导致丢失或出错的,本司不承担责任。

文章来源:http://www.darewe.com/news/news-102.html

合理的设置PS快捷键可以大大提高你的工作效率

快捷键操作一直是Photoshop高手的专利,熟练运用ps快捷键不但可以让别人觉得你很牛叉,还可以提高工作效率。不过默认情况下,Photoshop还有很多命令并没有设置相应的快捷键,合理的设置哪些ps快捷键可以大大提高你的工作效率,如果你认为这个ps技巧不错,一起分享给大家吧!……

1.显示、隐藏和隔离图层

这个快捷键大大节省了工作时间。一旦开始使用这个快捷键,我们就再也不用点击图层面板上的眼睛图标了。设置这个快捷键的好处是它可以用来打开或关闭选中的图层。如果想检查单个图层或一组特定的图层对最终作品的影响,只需选中这些图层,按下设置的显示/隐藏图层命令的快捷键即可。

建议:设置F3来显示/隐藏图层。设置Command/Ctrl+F3隔离选中的图层。

2.转换为智能对象和编辑内容

智能对象或许是Photoshop无损操作中最重要的一个元素,但很奇怪的是,竟然没有为它们设置默认的快捷键。我喜欢使用两个智能对象快捷键,一个用于将图层转化为智能对象,一个用于编辑其内容。当编辑一个智能对象的内容时,也可以双击图层的缩略图,但同样很耗费时间。例如,双击一次需要1s,一天需要操作近100次,这意味着浪费了2min。那么一周浪费了10min,一年将浪费了10h。一个简单的快捷键一年可以节省整整一天的工作时间。

建议:设置F5来转换为智能对象。设置Command/Ctrl+F5来编辑其内容。

3.调整属性面板

显示和隐藏控制面板操作也可以设置相应的快捷键。我倾向于将其设置为功能键,这样就不需要同时按住Command/ctrl键。我为经常需要显示或隐藏的两个面板设置了自定义快捷键,这样,在不需要使用时将其因此,就可以节省大量的屏幕空间。

建议:设置F7为显示/隐藏调整面板。设置F8为显示/隐藏属性面板。

4.排列:平铺和合并至标签栏

这两个选项可通过Window工具栏-排列中查看。使用这些命令,可在网格中快速地切换浏览所有打开的文档,并将其中一个打开,而其余的文档则折叠在标签中。不幸的是,这个命令无法使用同样的快捷键进行后退或前进,只能设置两个不同的快捷键。可以为它们设置两个相似的快捷键,这样易于在两种模式下进行切换。

建议:设置Command/Ctrl+F来平铺排列。设置Command/Ctrl+Shift+F来折叠标签。

5. Camera Raw 滤镜

Camera Raw 滤镜使利用Photoshop在任何图层中直接使用Camera Raw插件的所有功能成为可能。如果将它们应用到一个智能对象,甚至可以将它们作为智能滤镜完全无损的使用。

这个新滤镜是在Photoshop CC中引进的。我热衷于使用Camera Raw调整,因此,我立刻为Camera Raw 滤镜设置了快捷键,它为我节省了很多时间。这个滤镜只能在RGB模式中使用,但有一招,可以使你在CMYK文档中使用该快捷键。将该智能对象的来源设置为RGB,那么也可在CMYK颜色模式下使用。

建议:设置Command/Ctrl + Shift + R为激活Camera Raw滤镜。

6.转化为段落/点文本

在Photoshop中有两种创建独立的、完全可编辑图层的方法。如果只点击画布上的文字工具,将创建一个点型图层,它不能对文本自动断行。如果需要自动断行,则需要创建段落型图层。创建段落型图层需要点击并拖拽画布上的文字工具,以为段落定义一个区域。在该类型的菜单中,会发现可以将这两种类型进行相互转化。

建议:设置Command/Ctrl + Shift + P来切换段落或点文本。

7.取消所有选择的图层

某些情况下,可能需要确认在Photoshop中没有选中任何图层。在选择菜单下有一个取消选择图层的选项,但没有默认的快捷键。我喜欢为其设置一个Command/Ctrl + Shift + A 的快捷键,在InDesign中该快捷键有同样的作用。

建议:设置Command/Ctrl + Shift +A来取消所有选择的图层。

8.显示/隐藏所有效果

当一个文档中有多个图层,并有多个图层样式时,想快速查看所使用的图层样式的效果时,会变得比较困难。利用图层菜单下的显示/隐藏所有效果命令可以轻松的查看所使用的图层样式的效果。同样可以为它设置相应的快捷键以使操作更便捷。

建议:设置Command/Ctrl + Shift + H 来显示/隐藏所有图层效果。

9.混合画笔工具

最后一个,但并非最不重要,混合画笔值得拥有一个自定义快捷键。这个工具主要是与画笔工具一起使用,画笔工具的默认快捷键是B。为何不为混合画笔工具设置一个与B相邻的快捷键N呢?N默认下被设置为3D工具,但这个工具没有混合画笔工具常用。混合画笔工具可以将不同的颜色精美融合在一起,并减少照片的噪点。

建议:设置N键为混合画笔工具。

资料来源:http://www.darewe.com/news/news-101.html

使用CSS Sprites就好像玩拼图游戏一样

在大家还在拨号上网的“远古时期”,由于网速的限制,页面开发者都喜欢把网页里面的图片字节数控制的非常小,往往在一个图片文件夹里散落着n多的小碎图。随着网络技术的发展,网速的提升,大家越来越重视页面的加载速度、页面效率问题,过去的那些小图便成为了前端开发者的眼中钉,因为每加载一张图片都会产生一次浏览器请求数,发起的请求数越多那么页面加载的速度也越慢。还有当页面加载时,图片一个个的零星显示,鼠标经过时候背景闪白等也都是我们不能忍受的。于是乎将页面中的背景图整合到一起,利用“background-image”,“background- repeat”,“background-position”的组合进行背景定位的技术被广泛使用与了页面构建中,这就是CSS Sprites。当然CSS Sprites技术也存在着维护不便,内存占用大等等的缺点。

上面这些只是对CSS Sprites技术的一个普及。作为一个开发者我们应该对它有一个更全面的认识,挖掘深度内容,这样才能有利于我们效率开发,团队协作。

头疼的多人拼图游戏

使用CSS Sprites,就好像玩拼图游戏一样。一张白画布,那么多图怎么放到里面去才会完美?这是个让人纠结的事。而且在实际在工作场景中,我们面临着项目开发时间紧张,UI设计图要分期提供,多人协同开发一个项目等等问题。这些问题非常容易让我们在大项目中迷失,造成CSS拼图混乱,维护及其困难的情况。

定好规则,其实拼图也挺好玩的。

先期的准备工作

应对一个项目后期维护成本大的问题,我们最好的解决方案就是在开始前制定一系列的规范来限制问题的产品。好的开始是成功的一半。对于CSS Sprites,在项目开始前,我们要充分认识一个产品,同UI设计师做好良好的沟通,对我们未来组成我们Sprites图的各个元素有个大体的概念,比如我们的背景拼图可能包括什么。

一个好的Sprite画布是必须的

网页设计里面,Grid系统是必不可少的,好的Grid能解决我们很多排版问题。Grid系统同样适用于CSS Sprites。我们需要创建好一个优秀的画板,剩下的工作就是将元素合理的置于画板中了。

原文来源:合肥网站建设公司?http://www.darewe.com/news/news-98.html

一个网页设计师和终端体验者的对话

虽然说设计师很少能和终端体验者发生关系。但是事实上,一个页面到底好不好,终端体验者最有权利说。作为一个设计师,不是说光会设计漂亮页面就OK了,如果用户体验不好,页面再漂亮,也是空的。

1、需要学习理论,但不要迷信理论。很多设计师喜欢看国外的设计理论,这些理念通常都很先进,而且都有很强的逻辑,让人觉得“该这么回事”。不过,实际情况是,这些所谓先进的理念都是外国设计师根据国外用户浏览习惯总结出来的东西,虽然很系统、很完善。但是和中国用户的习惯还是有很大差异的。关于这点,我做过几个大型英文网站的项目,感触很深刻。其实,那些理论也都是外国设计师一点一点总结出来的,我们为什么自己不能总结一些中国用户自己的习惯呢?多看各个成功的网站,多观察身边的人浏览网站的习惯,然后自己思考一下“为什么”。合肥网站建设公司当你有自己成熟的理论了,你就离“大师”不远了。

2、好的页面设计是引导用户去阅读的。设计的最终目的是为了传达信息,如果为了页面美观而失去了传达信息本身的效果,那这种页面设计的效果就是负的。这是很多有平面设计习惯的设计师时常会忽略的问题。尤其在以文字和图片作为传达主体的网站上,这种问题更加明显。建议有这样问题设计师能看一些关于排版方面的书籍——在这方面,网页设计和印刷排版设计是有共通之处的。

3、设计也需要在文字上下功夫。很多时候页面上的引导是通过文字链接实现的,而策划案里面或者LAYOUT里面不会给你明确的文字(有不少策划案里所给的文字链界是仅供参考的),如果不自己琢磨下,有时候真会出现不少尴尬。最简单的例子:很多人喜欢用“MORE”、“CLICK HERE”、“SKIP”这样的英文单词。这个单词什么意思,我们都知道、可是如果这个网站目标用户群体是中年人或者年纪更大的人。那恭喜你,你对牛谈琴了——呈然,现在的年轻人大多有英文基础,但是老一辈可没有我们这么好的教育水平啊!…很多设计师都不太在意文字本身,这在中国是一个很悲哀的事实——这样的态度会让设计师很难进步,就是从职业规划上来说,将来要朝更高的其他方向发展,这也会成为一个障碍。

4、考虑下动态页面具体使用中会遇到的问题。静态页面我们能够控制最后出来的效果。但是动态页面却会出现我们无法预计的问题,你需要考虑到没有美感的网站编辑用丑陋颜色的标题把你的页面搞的乱七八遭、你需要考虑到有时候用户名是8个字,但是你却只给了7个字的距离……如此等等的问题都会影响到页面的效果和用户的观感。这方面的问题总是会超出你的想像,但是一旦发现了,就必须准备解决的方案,能否发现问题以及是否快速找到解决问题的方案,在一定程度上也是判断一个设计师是否有经验的标志。

原文来源:合肥网站建设公司?http://www.darewe.com/news/news-97.html