行内技术
你了解SQL的索引原理吗
上篇文章粗略的总结了些SQL聚集索引与非聚集索引的区别,但看起来好像不太清晰,这篇我通过索引原理来再一次分析下。索引是为检索而存在的,就是说索引并不是一个表必须的。表索引由多个页面组成,这些页面一起组成了一个树形结构,即我们通常说的B树,首先来看下表索引的组成部分:根极节点,root,它指向另外两个页,把一个表的记录从逻辑上分成非叶级节点Non-LeafLevel(枝),它指向了更加小的叶级节点LeafLevel(叶)。根节点、非叶级节点和叶级节点都位于索引页中,统称为索引叶节点,属于索引页的范筹。这些"枝"、"叶"最终指向数据页Page。根级节点和叶级节点之间的叶又...
2013-3-3385
你了解SQL的聚集索引吗
其实对于非专业的数据库操作人员来讲,例如软件开发人员,在很大程度上都搞不清楚数据库索引的一些基本知识,有些是知其一不知其二,或者是知其然不知其所以然。造成这种情况的主要原因我觉的是行业原因,有很多公司都有自己的DBA团队,他们会帮助你优化SQL,开发人员即使不懂优化问题也不大,所以开发人员对这方面也就不会下太多功夫去了解SQL优化,但如果公司没有这样的DBA呢,就只能靠程序员自己了。最近突然想起前一阵和一朋友的聊天,当时他问我的问题是一个非常普通的问题:说说SQL聚集索引和非聚集索引的区别。大家可能认为这个问题难度不大,认为太熟悉了,也许不会感兴趣,但你真能说清楚吗?其实...
2013-3-3414
网站内容营销应该知道的事情
在越来越多的人创建自己的博客、视频、主持的网络讨论会,或创造其他内容的时代,在技术使得企业能够直接与客户交互的时代;在客户都在网络上搜索信息,并且使自己不断了解感兴趣的产品或服务的时代;在发布材料以便与一些受众互动的理念,并不是为少数能够承受得起打印和传播成本的精英所保留的时代;在人们都可以成为媒体的一部分的时代;在公司需要听起来像他们本来的模样(公司是由人来运营的)的时代,我们倒要怀疑那些认为创造内容既艰难又复杂的观念了。当今的营销规则已经改变,即以产品为中心的沟通,无法树立你的品牌。我们不会这样做。相反,这里介绍一个简明的、易于分享的11条内容营销金规,不让你走弯路...
2013-3-3374
系统架构师应该具备哪些能力
一般来讲,系统架构师应该拥有以下几方面的能力:
    具备8年以上软件行业工作经验;具备4年以上C/S或B/S体系结构软件产品开发及架构和设计经验;具备3年以上的代码编写工作经验;具备丰富的大中型开发项目的总体规划、方案设计及技术队伍管理经验;对相关的技术标准有深刻的认识,对软件工程标准规范有良好的把握;对.Net/JAVA技术及整个解决方案有深刻的理解及熟练的应用,并且精通WebService/J2EE架构和设计模式,并在此基础上设计产品框架;具有面向对象分析、设计、开发能力(OOA、O...
2013-3-3425
.NET技术的发展路线与方向
技术发展html->asp->aspx->aspxmvchtml:纯html标签表示的静态网页;Asp:用文本编辑器,就可以进行开发的,把页面布局、数据访问、后台响应混合在一起的动态页面编程技术;Aspx:开始把UI界面,与后台交互代码进行分离(个人觉得只是表面);Aspx+mvc:把经典的桌面模式,融入到web开发中,让UI更加独立(内核分离),让程序层次更加分明,更加具强的代码可测试性;vb->.net->wpf+xamlVB:纯桌面应用程序的开发环境,对WIN32API进行封...
2013-3-3352
Ajax缓存问题怎么解决?
项目有时要用一些Ajax的效果,因为比较简单,也就没有去用什么Ajax.net之类的东西,手写代码也就实现了。第二天,有人向我报告错误;说是只有第一次读取的值正常,后面的值都不正常;我调试了一下,确实有这样的问题,查出是因为AJAX缓存的问题。解决办法有如下几种:
    在服务端加header("Cache-Control:no-cache,must-revalidate");(如php中)在ajax发送请求前加上anyAjaxObj.setRequestHeader("If-Modified-Since","0");在ajax发送请求前加上anyAjaxOb...
2013-3-3377
PHPmysql_real_escape_string的一处注意
mysql_real_escape_string()函数转义SQL语句中使用的字符串中的特殊字符。下列字符受影响:x00nr'"x1a如果成功,则该函数返回被转义的字符串。如果失败,则返回false。用法为mysql_real_escape_string(string,connection)参数string,必需。规定要转义的字符串。参数connection,可选。规定MySQL连接。如果未规定,则使用上一个连接。本函数将string中的特殊字符转义,并考虑到连接的当前字符集,因此可...
2013-3-3431
单选按钮与上传文件JavaScript为空验证
很基本的JavaScript验证,在这里记录一下方便以后取用。单选按钮和上传文件是非常常见的,很多时候当这两个控件用户并没有使用的情况下,不允许用户执行下一步操作。下面将一下如何实现。先是单选按钮吧:<label><inputtype="radio"name="work_group"id=""class="radio"value="少儿组">少儿组</label><label><inputtype="radio"name="work_group"id=""class="radio"value="青年组">青年组</label>...
2013-3-3434
如何返回前一页并刷新页面
使用window.history.go(-1)返回上页的同时刷新"上页",这个适合用在"上页"含有动态更新的内容,比如调用论坛的新帖,调用文章系统的最新文章等等。如果你的"上页"没有动态更新的内容,建议不要弄这个,别人点返回的时候还要再加载一次。强制载入后刷新一次在要载入的页面加入以下代码:<scripttype="text/javascript">if(window.name!="bencalie"){location.reload();window.name="bencalie";}else{window.name="";}</s...
2013-3-3433
一些CSS的常见缩写方法
1.background简写属性在一个声明中设置所有的背景属性:background-colorbackground-imagebackground-repeatbackground-attachmentbackground-position例如:background:#444444urlimage.png)no-repeatfixedtop;2.border简写属性在一个声明设置所有的边框属性:border-widthborder-styleborder-color例如:border:1pxsolidred;3....
2013-3-3431
公司怎样才能留住人才?
前几天在知乎看到这样一个问题,一个类似领导的发表了这样一个问题:为什么工作一年以上员工,总会有各种理由选择离职?来的时候很青涩,成熟了就要离开?除了不断涨工资外,如何留住这样的员工?之后就有很多人评论,有站在企业和员工的角度的分析,也有跟根据自身经验分析的说,各种说法一直涌上:见解1看楼主的意思就是想不涨工资留住人?呵呵。首先我觉得,涨工资肯定是必要的,刚进来的时候青涩,工资也低,现在人家能够创造的价值大了,工资要求提高是件很正常的事情,况且外面诱惑那么多。另外,楼主也得想清楚下,你能够给予员工什么,你给的别人能不能给,有什么东西是别处得不到的,...
2013-3-3402
JavaScript查看对象的内容
JavaScript是基于对象的一个编程语言,输出JavaScript对象的内部结构可以使调试更方便。下面介绍一些查看对象内部结构的方法,可以让你对对象内部的属性与值一目了然。先来看一下简单的方法:functiondump_obj(myObject){vars="";for(varpropertyinmyObject){s=s+"n"+property+":"+myObject[property];}alert(s);}varobj={name:'Gonn',class:'NowaMagic.net'};functiondum...
2013-3-3447
来全面认识下Cookie
从事web开发也有些日子了,cookie是个啥差不多能说明白,可是实际自己一上手操作就是得去搜索(你们懂的),结果被鄙视了...所以就写一篇博文做为自己的学习笔记,嘿嘿,博客的好处在此体现出来了。什么是Cookie“cookie是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个cookie。你可以使用JavaScript来创建和取回cookie的值。”-w3schoolcookie是访问过的网站创建的文件,用于存储浏览信息,例如个人资料信息。从JavaScript的角度看,cookie就是一些字符串信息。这些信...
2013-3-3404
哥德巴赫猜想的程序验证
TimusOnlineJudge网站上有这么一道题目:1356.SomethingEasier。这道题目的输入是一组2到109之间整数,对于每个输入的整数,要求用最少个数的素数的和来表示。这道题目的时间限制是1秒。我们知道著名的哥德巴赫猜想是:任何一个充分大的偶数都可以表示为两个素数之和。于是我们有以下的C语言程序://http://acm.timus.ru/problem.aspx?space=1&num=1356#include<stdio.h>#include<stdlib.h>#in...
2013-3-3389
简单通俗地理解Hash哈希存储
先来了解一下Hash的基本思路:设要存储对象的个数为num,那么我们就用len个内存单元来存储它们(len>=num);以每个对象ki的关键字为自变量,用一个函数h(ki)来映射出ki的内存地址,也就是ki的下标,将ki对象的元素内容全部存入这个地址中就行了。这个就是Hash的基本思路。Hash为什么这么想呢?换言之,为什么要用一个函数来映射出它们的地址单元呢?Thisisagoodquestion.明白了这个问题,Hash不再是问题。下面我就通俗易懂地向你来解答一下这个问题。现在我要存储4个元素1371411显然,我们可以用数组来存。也...
2013-3-3505
高质量代码是程序员的追求
首先来看一个事实,百度,谷歌,腾讯的程序员们的工资是一般程序员的2,3倍,高级程序员的工资可能是5倍以上。国外创业企业的软件开发者由于可以拿到股份,收入可能有百倍之多。这是为什么呢?他们的电脑性能最多比我们的好50%吧。他们的工作时间可能还要比我们少。他们的人体构造和我们也没有任何区别。他们的智商就算高,也不会高一倍吧。那么他们凭什么拿那么多钱呢?其实很简单,那就是他们的的产品--代码,比我们写的代码好几倍,那么的他们的收入就可以高几倍。一个快餐馆的厨师的收入可能只有2000元,而五星级宾馆的大厨年薪可能有百万。前者的产品只能管饱,后者可以成为艺术。...
2013-3-3413
PHP判断某一天在指定日期的前还是后
有这么一个需求,指定日期是12月12日,在12月12号前我要执行A事件,在其后要执行B事件,怎样判断今天是在12月12日的前还是后?程序如下:<?php$year=2010;$month=12;//月$day=12;//日$timeoffset=8;//与格林尼治时间GMT的时差list($thisyear,$thismonth,$thisday)=explode('-',date('Y-n-j',time()+$timeoffset*3600));if(($thismonth>$month)||($thismonth==$month&&$this...
2013-3-3489
在数字前面补0的几个实现思路
要求1-9的数字前面加0,如0102....1011....,就是用JavaScript代码实现空位补零,比如pad(12,3)=>012之类的。实现一:/*平淡无奇法*/functionpad(num,n){vari=(num+"").length;while(i++<n)num="0"+num;returnnum;}上面的代码太平淡无奇,体现不了我的真实水平。于是有了实现二:/*神奇递归法*/functionpad2(num,n){if((num+"").length>=n)returnnum;returnpad2("0"+nu...
2013-3-3500
分享一些JavaScript简易小技巧
特性检测而非浏览器检测因为某某特性某浏览器不支持,我们经常的做法是在代码中直接先做浏览器判断如:if(Broswer.isFirfox){//dosomething}其实这样做是不科学的,因为很可以其它浏览器上可以支持你要用的特性,所以,比较好的做法为是直接做特性判断。如:if(window.localStorage){//使用本地存储功能}使用方括号来访问属性或方法这一点到不是强制的,只不过如果使用方括号来访问可以享受一些动态特性带来的好处,而且命名方面有少了许多限制。如:for(vari=0;i<9;i++){o...
2013-3-3422
PHP遍历某文件夹下的文件与文件夹名
opendir()函数opendir()函数打开一个目录句柄,可由closedir(),readdir()和rewinddir()使用。若成功,则该函数返回一个目录流,否则返回false以及一个error。可以通过在函数名前加上"@"来隐藏error的输出。语法为opendir(path,context)。参数path,必需。规定要打开的目录路径。参数context,可选。规定目录句柄的环境。context是可修改目录流的行为的一套选项。下面是一个例子:<?php//打开images目录$dir=opendir("goord...
2013-3-3394