2010年4月7日 | 标签:

父窗体打开页面的JavaScript

function GoToPage(id)
{
    var title="title";
    var url="xxxxx.php?id="+id+"&radom="+Math.random();;
    var Width="700";
    var Height="600";
    var arguemnts = new Object();
    arguemnts.window = window;
    if (document.all&&window.print) {
        window.showModalDialog(url,arguemnts,"dialogWidth:" + Width + "px;dialogHeight:" + Height + "px;center:yes;status:no;scroll:yes;help:no;");
    } else {
        window.open(url,"","width=" + Width + "px,height=" + Height + "px,resizable=1,scrollbars=1");
    }
}

子页面执行代码后:

window.dialogArguments.window.location = window.dialogArguments.window.location;
self.close();

如果是window.open打开的:

window.opener.location.reload();
window.opener=null;window.close();
2009年8月28日 | 标签:

解决dedecms 栏目内容无法保存问题。
正好做项目中突然用到栏目内容那块,发现栏目内容在IE6与IE7无法保存问题。特地花了半个小时时间解决了这个历史bug,特此公布分享。
首先打开 /admin/templets/catalog_add.htm,这里admin是重命名的后台目录,具体根据各自的后台目录来找文件。
1. 大概在157行找到以下代码

function ShowItem1(){
  ShowObj('head1'); ShowObj('needset');
  HideObj('head2'); HideObj('adset');
  HideObj('head3'); HideObj('ctset');
}

将其改为:

function ShowItem1(){
  ShowObj('head1'); ShowObj('needset');
  ShowObj('ctset');
  HideObj('head2'); HideObj('adset');
}

2.找到175行与188行左右,将以下内容删除

<td width="84" align="center" background="img/itemnote2.gif"><a href="#" onClick="ShowItem3()"><u>栏目内容</u></a>&nbsp;</td>

3. 在当前文件内搜索 “ctset” ,然后在同行找到 style=”display:none”, 将其改为 style=”display:block” 或者将其删除也可以。

4. 更改完成,bug解决。,同理catalog_edit.htm也一样。此例在dedecms v5.3测试通过,看了下v5.5页面js和5.3几乎相同,按照道理也能测试通过。

原创:http://www.phpcake.cn/archives/365

2009年8月6日 | 标签: , ,

本文介绍了数据库索引,及其优、缺点。针对MySQL索引的特点、应用进行了详细的描述。分析了如何避免MySQL无法使用,如何使用EXPLAIN分析查询语句,如何优化MySQL索引的应用。本文摘自《MySQL 5权威指南》(3rd)的8.9节。(2007.07.05最后更新)

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。
注:[1]索引不是万能的!索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。为了在某种程序上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非常明显。[2]另外,索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。
从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但MySQL把同一个数据表里的索引总数限制为16个。
1. InnoDB数据表的索引
与MyISAM数据表相比,索引对InnoDB数据的重要性要大得多。在InnoDB数据表上,索引对InnoDB数据表的重要性要在得多。在 InnoDB数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的苊、基础。”数据行级锁定”的意思是指在事务操作的执行过程中锁定正在被处理的个别记录,不让其他用户进行访问。这种锁定将影响到(但不限于)SELECT…LOCK IN SHARE MODE、SELECT…FOR UPDATE命令以及

Click to continue reading “Mysql 索引详解”

2009年8月6日 | 标签: , ,

php环境配置 IIS PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
IIS即可以支持php也可以支持asp.相信得到不少人青睐.
下面的配置文档希望可以帮助大家顺利完成php环境搭建.不正确的地方请大家指正批评.

本例是在windows 2003下
IIS6.0
php5.2.10(zip)
MySQL5.0.84
phpmyadmin3.2.0
ZendOptimizer-3.2.6
的安装与配置

IIS6.0 的安装

1 在光驱中放入Windows 2003 SP2系统安装光盘

2 依次在 控制面板 > 添加与删除 > 添加/删除Windows组件 > Windows组件向导 中选中 Internet信息服务(IIS)
3 点击 下一步 进行文件复制,直到完成安装
4 完成 IIS 安装

MySQL 的安装

1 点击MySQL安装包

1
2 默认是Typical,如果想修改安装路径的话也可以选择custom.
注意:安装mysql的路径中,不能含有中文!

2

Click to continue reading “PHP环境配置 IIS6 PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置”

2009年7月23日 | 标签: ,

1. 开始运行->cmd
2. 执行命令

sc create svnservice binpath= "D:\svn\bin\svnserve.exe --service -r D:\svn"
displayname= "svnservice" start= auto depend= Tcpip 

注:注意空格,等号前不允许有空格。
3.删除服务 sc delete svnservice

2009年7月15日 | 标签: ,

Javascript 闭包

翻译:为之漫笔
链接:http://www.cn-cuckoo.com/2007/08/01/understand-javascript-closures-72.html

简介

Closure
所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

闭包是 ECMAScript (JavaScript)最强大的特性之一,但用好闭包的前提是必须理解闭包。闭包的创建相对容易,人们甚至会在不经意间创建闭包,但这些无意创建的闭包却存在潜在的危害,尤其是在比较常见的浏览器环境下。如果想要扬长避短地使用闭包这一特性,则必须了解它们的工作机制。而闭包工作机制的实现很大程度上有赖于标识符(或者说对象属性)解析过程中作用域的角色。

关于闭包,最简单的描述就是 ECMAScript 允许使用内部函数--即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。也就是说,内部函数会在外部函数返回后被执行。而当这个内部函数执行时,它仍然必需访问其外部函数的局部变量、参数以及其他内部函数。这些局部变量、参数和函数声明(最初时)的值是外部函数返回时的值,但也会受到内部函数的影响。

遗憾的是,要适当地理解闭包就必须理解闭包背后运行的机制,以及许多相关的技术细节。虽然本文的前半部分并没有涉及 ECMA 262 规范指定的某些算法,但仍然有许多无法回避或简化的内容。对于个别熟悉对象属性名解析的人来说,可以跳过相关的内容,但是除非你对闭包也非常熟悉,否则最好是不要跳过下面几节。
对象属性名解析

Click to continue reading “Javascript 闭包”

2009年6月17日 | 标签:

使用EXPLAIN语句检查SQL语句

当你在一条SELECT语句前放上关键词EXPLAIN,MySQL解释它将如何处理SELECT,提供有关表如何联结和以什么次序联结的信息。

借助于EXPLAIN,你可以知道你什么时候必须为表加入索引以得到一个使用索引找到记录的更快的SELECT。

EXPLAIN tbl_name

or EXPLAIN SELECT select_options
EXPLAIN tbl_name是DESCRIBE tbl_name或SHOW COLUMNS FROM tbl_name的一个同义词。

Click to continue reading “MySQL的查询性能优化”

2009年4月16日 | 标签: , ,

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

例如:

2、 进行url跳转时可以整体使用encodeURI

例如:Location.href=encodeURI(”http://cang.baidu.com/do/s?word=百度&ct=21″);

3、 js使用数据时可以使用escape[Huoho.Com编辑]

例如:搜藏中history纪录。

4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ‘,(,),*,-,.,_,~,0-9,a-z,A-Z

Click to continue reading “Javascript解码编码常用函数”

2009年4月9日 | 标签: , , ,

yum是什么
yum = Yellow dog Updater, Modified
主要功能是更方便的添加/删除/更新RPM包.
它能自动解决包的倚赖性问题.
它能便于管理大量系统的更新问题

yum特点
可以同时配置多个资源库(Repository)
简洁的配置文件(/etc/yum.conf
自动解决增加或删除rpm包时遇到的倚赖性问题
使用方便
保持与RPM数据库的一致性

yum安装
CentOS自带(yum-*.noarch.rpm)
#rpm -ivh yum-*.noarch.rpm
在第一次启用yum之前首先需要导入系统的RPM-GPG-KEY:
#rpm –import /usr/share/doc/centos-release-3(4)/RPM-GPG-KEY-CentOS-3(4)

yum指令
注:当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.

rpm包的更新
检查可更新的rpm包
#yum check-update
更新所有的rpm包
#yum update
更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source
大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
#yum upgrade

rpm包的安装和删除
安装rpm包,如xmms-mp3
#yum install xmms-mp3
删除rpm包,包括与该包有倚赖性的包
#yum remove licq
注:同时会提示删除licq-gnome,licq-qt,licq-text

Click to continue reading “CentOS yum的详细说明”

2009年3月22日 | 标签: , ,
class queryDir
{
    public $files;//存储文件
    public $i;//数组下标
    public $j;//数组下标及存储文件个数
    public $startDir;//起始目录
    public $temp;
    public $tempDir;//存储顶级目录名
    //析构函数,初始化变量
    function __construct()
    {
        $this->files=array();
        $this->i=0;
        $this->j=0;
        $this->temp=0;
        $this->startDir="./";
    }
    //取得顶级目录名称
    function firstDir($startDir)
    {
        $this->tempDir=basename($this->startDir);
    }
    //遍历目录函数
    function getDir($startDir,$i,$j)
    {
        //echo $this->startDir;
        $handle=opendir($this->startDir);//取得目录句柄
        while(false!==($filename = readdir($handle)))
        {
            $this->files[$this->i][$this->j]=$filename;//把目录下的文件,以二维数组存储
            $this->j++;//得到此目录下的文件个数
        }

        closedir($handle);
    }
    //判断是否是目录函数
    function checkDir($temp)
    {
        for($k=2;$k< $temp;)//跳过"."和".."文件
        {

            if(is_dir($this->startDir.$this->files[$this->i][$k]))//判断此文件是否是目录
            {
                //echo "k=".$k."j=".$this->j."<br />";
                $this->i=$this->files[$this->i][$k];//把当前文件作为数组下标存储
                $this->j=0;//文件个数清零
                $this->startDir.=$this->i."/";
                $this->getDir($this->startDir,$this->i,$this->j);
                $this->checkDir($this->j);//递归
                $this->startDir=dirname($this->startDir)."/";//返回上一级目录
                $this->i=basename($this->startDir);//重新取得此目录的数组下标
                //以下修改了返回是顶级目录以及目录中和顶级目录同名时出现的问题
                if($this->tempDir==$this->i && basename(dirname($this->startDir))==".")
                {
                    $this->i=0;
                }
            }
            echo $this->startDir.$this->files[$this->i][$k]."<br />";
            $k++;
        }
    }
}
$dir=new queryDir();
$dir->startDir="D:/xampp/htdocs/php_example/"; //要遍历的路径
//$dir->startDir = $_SERVER['DOCUMENT_ROOT'] . '/';

$dir->firstDir($obj->startDir);
$dir->getDir($obj->startDir,0,0);
$dir->checkDir($obj->j); 
Page 1 of 1212345678910»...尾页 »
WordPress Loves AJAX