说到拖拽功能,现在各大,中,小型网站都基本上有类似的东西,特别是对弹出层拖拽,更是常见的一塌糊涂。。。其实对于弹出层而言,拖拽最初的目的很单纯,就是为了通过拉开层,使被弹出层挡住的内容可见,(当然,后来关于拖拽的功能不断被优化,使得拖拽的应用有了别的意义,最典型的如igoogle的自定义首页,通过拖放的形式满足用户自定义想要的内容模块顺序和位置)。本文讨论的重点不是iGoogle的拖放效果,那属于进阶篇,本文是拖拽的“第一阶”,如题,实现最简单的拖拽。这里的“最简单”即不考虑多个拖拽层的堆叠顺序,不考虑拖拽范围限制,不考虑类似iGoogle的“dragTo”的效果... 沙箱模式常见于YUI3core,它是一种采用同一构造器(Constructor)生成彼此独立且互不干扰(self-contained)的实例对象,而从避免污染全局对象的方法。命名空间JavaScript本身中没有提供命名空间机制,所以为了避免不同函数、对象以及变量名对全局空间的污染,通常的做法是为你的应用程序或者库创建一个唯一的全局对象,然后将所有方法与属性添加到这个对象上。代码清单1:传统命名空间模式/*BEFORE:5globals*///constructorsfunctionParent(){}functionChild(){}//avar... 从语言学的角度上来说,允许代码无节制地使用全局变量,是最错误的选择之一。而更可怕的,就是一个变量"可能"成为全局的(在未知的时间与地点)。但是这两项,却伴随JavaScript这门语言成功地走到了现在。也许是限于浏览器应用的规模,所以这一切还迟迟没有酿成灾难。在此之前,出现了两种解决方案。一种是ECMA在新的规范(Edition5)中对此做出了限制,其中最重要的一条便是eval()的使用变得不再随意和无度。而另一种方案,则是相对没有那么官僚与学术的,尽管也拥有一个同样学术的名字:沙箱。沙箱(Sandbox)并不是一个新东西,即使对于JavaScript来说,也已经存在... push()方法可向数组的末尾添加一个或多个元素,并返回新的长度。返回值为把指定的值添加到数组后的新长度。语法:arrayObject.push(newelement1,newelement2,....,newelementX)参数newelement1,必需。要添加到数组的第一个元素。参数newelement2,可选。要添加到数组的第二个元素。参数newelementX,可选。可添加多个元素。push()方法可把它的参数顺序添加到arrayObject的尾部。它直接修改arrayObject,而不是创建一个新的数组。push()方法和pop()... 下面的实验是验证push()函数与CreateElement()函数在创建HTML元素的效率。可以看出,实用push()确实效率要比后者要高,不过究竟可以高出多少,还需要有专研精神的朋友去测试了,这里仅仅是抛砖引玉。效果演示thisisdiv1thisisdiv2vard=newDate().getTime(),buf=[],div1=document.getElementById('div1'),div2=document.getElementById('div2'),t1=document.getElementById('t1'),t2=doc... Google的2011年校园招聘宣讲会分别在北大和清华举行,其中北大本来是350人的会场,去了大约600多人,爆满,那场面绝对是人山人海,彩旗飘飘。经过了大约一个小时多的宣讲和问答,开始现场笔试环节,一共10个选择题和三个算法题,只有选择题答对了6个以上的人才有机会让面试官看你后面的算法题。然后明天下午会通知笔试通过的人进行面试,Google的效率就像其搜索引擎一样迅速,效率可见一般。其中前10个选择题中有一个特别雷人的,题如下:现在北京有一套房子,价格200万,假设房价每年上涨10%,一个软件工程师每年固定能赚40万。如果他想买这套房子,不贷款,不涨工资,没有其他收... Q1错误提示:Warning:Cannotsendsessioncookie-headersalreadysentWarning:Cannotsendsessioncachelimiter-headersalreadysent这一类问题,原因是你在程序中使用session_start()时,之前已经有实际的html内容输出了。或许你说,我没有啊,我只不过是echo或print一条消息了。很抱歉,你的echo或print语句所产生的输出,就是实际的html内容输出。解决此类问题的办法是,将你的session_start()调到程序的第一行。Q2错误提... 今天遇到一个问题,运行下面代码时报错。<?phpsession_start();if(!isset($_SESSION['user'])||null===$_SESSION['user']){header('location:login.php');exit;}?>错误信息为:Warning:session_start()[function.session-start]:Cannotsendsessioncachelimiter-headersalreadysent(outputstartedatD:\PHPProjects\agilel... 在使用url进行参数传递时,经常会传递一些中文名的参数或URL地址,在后台处理时会发生转换错误。在有些传递页面使用GB2312,而在接收页面使用UTF8,这样接收到的参数就可能会与原来发生不一致。使用服务器端的urlEncode函数编码的URL,与使用客户端javascript的encodeURI函数编码的URL,结果就不一样。JavaScript对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent。效果演示varen... 以下这些tips,是我在实际工作中慢慢形成的,有些可能是不正确的,有些出于个人习惯,所以,千万不要把以下这些条当成什么标准,其中可能隐藏着天大的bug,代码可能正在病态的运行中,SO!请一定仔细的看过后想想,这么做的好处是什么?会产生怎样的负面影响?开发习惯和PHP代码准确的理解各种概念。现在的新东西层出不穷,望文生义和一知半解对开发工作有害无益;代码美观,适当的空行、缩进,空格,这样能更容易理解代码段的意思;一定要写注释,而且要恰当的注释,要不然后面的维护工作或者接手代码的人会痛哭不已;静态方法、类访问权限、接口、抽象类应该综合起来使用,发...
Zend_Controller_Router_Rewrite是标准的框架路由器。路由是个过程,在这个过程中它取出URI的端点(跟着基本URL的URI的那部分)并把它分解成参数来决定哪个模块、哪个控制器和控制器中的哪个动作应该接受请求。模块、控制器、动作和其它参数被打包到Zend_Controller_Request_Http对象,接着这个对象由Zend_Controller_Dispatcher_Standard来处理。路由只发生一次:当请求最初被接收和第一个控制器被派遣之前。Zend_Controller_Router_Rewrite被设计来考虑使用纯php结构时mod... 前一阵对三角边稍作了一点总结。昨天下班前同事又提到它。我在想,或许我们利用它做的事可能还不止那么多。也许它还能欺骗我们的眼球更多的东西。比如我一直在想的css3中目前只有webkit核心支持的transition变换属性。能否利用三角边做点它能做的事情呢?于是下班回家随便写了点测试的东西。。。发现如果要求不是很严格的话,某些时候还是能欺骗到我们的眼球的。比如下面的一个demo:functionrunCode(id){obj=document.getElementById(id);varTestWin=open('');//打开一个窗口并赋给变量TestWin。Tes... 米塞斯认为人类所有带有意识的行动都是为了增进他们自己的快乐和满足感,当然每个人的快乐和满足感没有一个通用标准衡量。一般来讲人类的行为都是有动机、目的、过程和结果的。浏览网络的人是为了达到某种目的,而浏览的结果可能帮助人们直接或间接达到目的也可能什么都没有;同样,网络内容的提供者也有着自己的目的,他们可能知道也可能根本不知道自己以某种方式提供的内容会帮组其他一定数量的浏览者达到或接近浏览的目的。所以,如果你是网络内容的提供者,如果恰好是有着自己明确目的,那么下面几点是非常重要的:有价值的内容,更有价值的内容建立在良好的内容组织之上的导航,更便捷的导航良好...
前端控制器是MVC组建中的苦力,因为它要实例化对象、触发事件、建立默认的行为等,它的主要目的是处理所有进入应用的请求。前端控制器的设计模式被应用于不同的MVC框架中,我们在ZendFramework中指代的前端控制器(FrontController)实际上是指Zend_Controller_Front类,因为该类实现了前端控制器的模式;另一定注意的是,前端控制器设计是单例模式(Singleton),这也就意味着它实现了单例设计模式,也就是仅仅只能有一个实例化的前端控制器,即我们不能直接实例化FrontController,而是拿取一个。下面我们实现一个简单的control... 自动加载的原理是Zend_Application实例了Zend_Loader_Autoloader,使其调用了spl_autoload_register(array(__CLASS__,'autoload')); 这样如果找不到的类就会调用此对象的autoload方法进行处理。一个名称空间可以有多个加载器,迭代找出符合的自定义加载器后,其余的就不会使用了,一般我们只会针对一个名称空间注册一个自定义加载器或者直接使用默认的加载器。注册名称空间方式分为两种:只注册了空间的前辍,没有指定任何加载器,注册方法为registerNamespace('空间名称')。... Zend_Db_Adapter是zendframework的数据库抽象层API,基于pdo,你可以使用Zend_Db_Adapter连接和处理多种数据库,包括microsoftSQLServer,MySql,SQLite等等。要针对不同的数据库实例化一个Zend_Db_Adapter对象,需要将adapter的名字和描述数据库连接的参数数组作为参数,静态调用Zend_Db::factory()方法。例如,连接到一个数据库名称为"test",用户名为"root"的本地MySQL数据库,可以进行如下操作:<?phprequire_once'Zend/Db.php';... 今天遇到一个问题,网站在IE6下面打开会提示:InternetExplorer无法打开站点XXX。已终止操作。先介绍一下网上常见的解决方法。因为在页面还没有ready的时候就调用了htmlObject的appendChild或者innerHTML操作,这样会在IE上弹出一个对话框:"InternetExplorer无法打开站点XXX,已终止操作"。解决办法大概为以下两点:1.在appendChild或者innerHTML操作处判断document.readyState=="complete",若为否,则setTimeout若干秒之后重新作这个操作。但是,此属... 其实zend做的只是把一个超级牛的专业phper的全部知识打包成一个程序包,提供给大家使用。当然这个phper的习惯不一定符合你的需求,只拿需要的内容吧。这些都看过之后,可以自己挑部分源码出来,做自己专属的zendframework应用,或者专门做MVC的zendframework。Zend_AclAccesscontrollist实现角色对资源的权限模型。只是个概念,我正在用的权限方式基本上跟acl差不多,acl在权限方面并没有什么创新的。而且需要去扩展acl要写更大量的代码。不如自己写。Zend_Auth验证,只负责验证,传说中有HTTP...
CDN的全称是ContentDeliveryNetwork,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。更多介绍看这里:http://code.google.com/p/mydocspace/wiki/CDN我想大家对类似下面这段javascript并不陌生。<scripttype="te... 到底啥是ZendFrameworkMVC设计模式?MVC(Model-View-Controller)模式,即模型-试图-控制器模式,其核心思想是将整个程序代码分成相对独立而又能协同工作的3个组成部分,具体的功能如下:控制器(Controller):控制层。起到控制整个业务流程的作用,实现View层跟Model层的协同工作。模型(Model):数据业务逻辑层。实现具体的业务逻辑、状态管理的功能。视图(View):表示层。就是与用户实现交互的页面,通常实现数据的输入和输出功能。通俗的讲:控制器(Controller)-程序员编写程序应有...