标签归档:Javascript

jquery的$.extend和$.fn.extend作用及区别

转载自: http://blog.sina.com.cn/s/blog_7c5d61f30101da1k.html jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(); jQuery.extend(); 虽然 javascript 没有明确的类的概念,但是用类来理解它,会更方便。 jQuery便是一个封装得非常好的类,比如我们用 语句 $(“#btn1″) 会生成一个 jQuery类的实例。 jQuery.extend(object); 为jQuery类添加类方法,可以理解为添加静态方法。如: jQuery.extend({ min: function(a, b) { return a < b ? a : b; }, max: function(a, b) { return a > b ? a : b; } }); … 继续阅读

发表在 Javascript | 标签为 , | 留下评论

ZendStudio svn插件快捷键无效及无语法无提示的解决办法

一、工作区间的项目关联了svn版本,但是快捷键无效。如ctrl+alt+c 提交。 工具条空白处右击,弹出右键菜单,选择 Customize Perspective,切换到 Command Group Availability,选择左侧  command groups Availability  中的 SVN 即可。 zend studio 7.0.1 参考:http://www.patrickhe.info/programmer/?p=51 二。项目内各种类的方法或者其他include进来的文件的方法无提示,各种定义过的变量无提示。就连php自身的常量、方法也没有提示。  记得以前用eclipse搞jsp的时候 要加载很多jar包时经常要配置类库,比如导入tomcat 的server runtime library等。通常是右击项目名称 build_pah->configure buil_path  配好了根下面应该会有build/classes文件夹。    (记得eclipse可以下载html文件形式的docs文件夹。添加路径就可以。还可以配置url,用哪几个组合键就可以让浏览器访问对应的文档网站。在zend studio里面都没试过,貌似好像真是功能不怎么全。)   我相信zend是从eclipse抄袭过来,并且没抄全。但是一些设置还是应该相同。但是从上面3个图中没有找到可以添加可叫做 ”php core library ”的东西。(只有2个可选库,user library好像是可以自己导文件夹的。) 我记得新建一个项目都有语法提示的。于是新建一个php project 叫ddd。观察结构。javascript库是新建时 … 继续阅读

发表在 Eclipse | 标签为 , , , | 留下评论

【转】PHP使用mod_deflate压缩页面和使用GZip压缩页面的方法

1.使用mod_deflate压缩页面 下边例子会压缩 html,xml,php,js,css后缀的文件 在.htaccess中加入: <ifmodule mod_deflate.c> AddOutputFilter DEFLATE html xml php js css </ifmodule> 或者 <ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/xml application/x-httpd-php application/x-javascript text/css </ifmodule> 但是如果你的主机mod_deflate模块没有打开就可以退而求其次选择GZip压缩 2.使用GZip压缩页面 注意:这种办法会增加服务器内存消耗.并且要zlib库支持(一般都会开启)且要求PHP版本>4.0.4 使用ob_gzhandler函数的3种方法进行压缩: 1)在php.ini中设置output_handler = ob_gzhandler 2)在.htaccess中加入php_value output_handler ob_gzhandler 3)在php文件头加上ob_start(’ob_gzhandler’); 这里详细介绍第三种办法 首先需要把css或者js文件后边加上后缀.php 然后在文件的首行加入<?PHP If(Extension_Loaded(’zlib’)){Ob_Start(’ob_gzhandler’);}Header(”Content-type: … 继续阅读

发表在 默认分类 | 标签为 , , , | 留下评论

【转】escape()、encodeURI()、encodeURIComponent()区别详解

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。 下面简单介绍一下它们的区别 1 escape()函数 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。 语法 escape(string) 参数 描述 string 必需。要被转义或编码的字符串。 返回值 已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。 说明 该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: – _ . ! ~ * ‘ ( ) 。其他所有的字符都会被转义序列替换。 2 encodeURI()函数 定义和用法 encodeURI() 函数可把字符串作为 … 继续阅读

发表在 默认分类 | 标签为 | 留下评论

通过jsonp实现跨越应用示例

转载自:http://www.smallgang.cn/index.php/JavaScript/jsonp.html   什么是JSONP协议? JSONP即JSON with Padding。由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源。如果要进行跨域请求,我们可以通过使用html的script标记来进行跨域请求,并在响应中返回要执行的script代码,其中可以直接使用JSON传递javascript对象。这种跨域的通讯方式称为JSONP。 很明显,JSONP是一种脚本注入(Script Injection)行为,需要特别注意其安全性。 站点www.87end.cnd的php代码(jsonp.php) //ajax接收的参数$action = $_GET['act'];$name = $_GET['name']; call_user_func($action, $name); function sayHello($name) {    $callback = trim($_GET['jsoncallback']);    $arr = array(‘msg’=>’hello ‘ . $name);    echo $callback.”(“.json_encode($arr).”);”;} 站点www.smallgang.cn的 JS脚本(jsonp.html), 用jquery的ajax,有两种实现方式 方法一: jQuery.getJSON(url,[data],[callback])$.getJSON(“http://www.87end.cn/jsonp.php?act=sayHello&name=xiaogang&jsoncallback=?”,     function(data){         alert(data.msg);     }  ); 方法二:jQuery.ajax(options)$.ajax({ … 继续阅读

发表在 Ajax | 标签为 , , | 留下评论

【转】HTTP长连接的“服务器推”技术(3) – 讨论

晨:    目前我对comet技术的总体印象是:如果仅限于单向推送数据,那么comet无疑是有效的。 对于双向较频繁交换数据,comet技术会退化成最简单的轮询。 我和方荣的共同想法都认为在双向通讯的时候这样做效率太差。 目前覆盖最广泛的技术里解决这一问题最有效的是Flash AS3中新增的Socket。Socket解决了XMLSocket的一些技术障碍,并且可以使用raw binary data。 理论上可以实现一个通用的Flash长连接组件。

发表在 服务器端 | 标签为 , , , , | 留下评论

【转】HTTP长连接的“服务器推”技术(2) – 转载

基于 Iframe 及 htmlfile 的流(streaming)方式 iframe 是很早就存在的一种 HTML 标记, 通过在 HTML 页面里嵌入一个隐蔵帧,然后将这个隐蔵帧的 SRC 属性设为对一个长连接的请求,服务器端就能源源不断地往客户端输入数据。 图 3. 基于流方式的服务器推模型 上节提到的 AJAX 方案是在 JavaScript 里处理 XMLHttpRequest 从服务器取回的数据,然后 Javascript 可以很方便的去控制 HTML 页面的显示。同样的思路用在 iframe 方案的客户端,iframe 服务器端并不返回直接显示在页面的数据,而是返回对客户端 Javascript 函数的调用,如“”。服务器端将返回的数据作为客户端 JavaScript 函数的参数传递;客户端浏览器的 Javascript 引擎在收到服务器返回的 JavaScript 调用时就会去执行代码。 从图3可以看到,每次数据传送不会关闭连接,连接只会在通信出现错误时,或是连接重建时关闭(一些防火墙常被设置为丢弃过长的连接, … 继续阅读

发表在 服务器端 | 标签为 , , , , | 留下评论

【转】HTTP长连接的“服务器推”技术(1) – 转载

转载地址:http://www.builder.com.cn/2007/0904/488393.shtml 很多应用譬如监控、即时通信、即时报价系统都需要将后台发生的变化实时传送到客户 端而无须客户端不停地刷新、发送请求。本文首先介绍、比较了常用的“服务器推”方案,着重介绍了 Comet - 使用 HTTP 长连接、无须浏览器安装插件的两种“服务器推”方案:基于 AJAX 的长轮询方式;基于 iframe 及 htmlfile 的流方式。最后分析了开发 Comet 应用需要注意的一些问题,以及如何借助开源的 Comet 框架-pushlet 构建自己的“服务器推”应用。 “服务器推”技术的应用 传统模式的 Web 系统以客户端发出请求、服务器端响应的方式工作。这种方式并不能满足很多现实应用的需求,譬如: 监控系统:后台硬件热插拔、LED、温度、电压发生变化; 即时通信系统:其它用户登录、发送信息; 即时报价系统:后台数据库内容发生变化; 这些应用都需要服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求。“服务器推”技术在现实应用中有一些解决方案,本文将这些解决方案 分为两类:一类需要在浏览器端安装插件,基于套接口传送信息,或是使用 RMI、CORBA 进行远程调用;而另一类则无须浏览器安装任何插件、基于 HTTP 长连接。 将“服务器推”应用在 Web 程序中,首先考虑的是如何在功能有限的浏览器端接收、处理信息: 客户端如何接收、处理信息,是否需要使用套接口或是使用远程调用。客户端呈现给用户的是 HTML 页面还是 Java applet … 继续阅读

发表在 服务器端 | 标签为 , , , , | 留下评论

【转】(跨域)JSONP原理 $.getJSON 用法 jquery跨域

简介符合Web2.0特征的众多网站一个明显的特点就是采用Ajax。Ajax提供了在后台提交请求访问数据的功能。其实现主要使用的是XMLHttpRequest函数,这个函数允许客户端的Javascript发送到服务器端的HTTP请求并获得返回数据。Ajax同时也是目前众多的Mashup背后的驱动力量,他们都利用Ajax来聚合不同来源的信息。 理解同源策略的限制同源策略是指阻止代码获得或者更改从另一个域名下获得的文件或者信息。也就是说我们的请求地址必须和当前网站的地指相同。同源策略通过隔离来实现对资源的保护。这个策略的历史非常悠久从Netscape Navigator 2.0时代就开始了。 解决这个限制的一个相对简单的办法就是在服务器端发送请求,服务器充当一个到达第三方资源的代理中继。虽然是用广泛但是这个方法却不够灵活。另一个办法就是使用框架(frames),将第三方站点的资源包含进来,但是包含进来的资源同样要受到同源策略的限制。 有一个很巧妙的办法就是在页面中使用动态代码元素,代码的源指向服务地址并在自己的代码中加载数据。当这些代码加载执行的时候,同源策略就不会起到限制。但是如果代码试图下载文件的时候执行还是会失败,幸运的是,我们可以使用JSON(JavaScript Object Notation)来改进这个应用。 JSON和JSONP与XML相比,JSON是一个轻量级的数据交换格式。JSON对于JavaScript开发人员充满魅力的原因在于JSON本身就是Javascript中的对象。例如一个ticker对象   var ticker = {symbol:’IBM’,price:100}而JSON串就是   {symbol:’IBM’,price:100}这样我们就可以在函数的参数中传递JSON数据。我们很容易掌握在函数中使用动态的JSON参数数据,但是我们的目的并不是这个。通过使我们的函数能够加载动态的JSON数据,我们就能够处理动态的数据,这项技术叫做 Dynamic Javascript Insertion。我们看下面的例子index.html中   <script type=”text/javascript”>       function showPrice(data){           alert(“Symbol:” + data.symbol + “, Price:” + data.price);       }              var url = … 继续阅读

发表在 Javascript | 标签为 , , , , | 留下评论

CSS常见兼容问题

抄袭位置:http://www.kiman.me/2008/12/browser-compatibility-css-code/ CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的过度,请尽量用xhtml格式写代码,而且DOCTYPE 影响 CSS 处理,作为W3C的标准,一定要加 DOCTYPE声名.  CSS技巧 1.div的垂直居中问题vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行  2. margin加倍的问题     设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline;    例如:    <#div id=”imfloat”>    相应的css为    #IamFloat{    float:left;    margin:5px;/*IE下理解为10px*/    display:inline;/*IE下再理解为5px*/}  3.浮动ie产生的双倍距离     #box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略}    这里细说一下block与inline两个元素:block元素的特点是,总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是,和其他元素在同一行上,不可控制(内嵌元素);    #box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的效果 diplay:table;   4 IE与宽度和高度的问题IE … 继续阅读

发表在 Css | 标签为 , , | 留下评论