2008年10月21日
一、如果是XP(vista)与UBUNTU之间,先装XP,后装ubuntu,ubuntu会在grub中加入XP启动项。可以手动添加。
对应XP,vista,2003的
title Microsoft Windows XP Professional
root (hd0,n) # n视XP所在分区而定,第一分区就是0
default
makeactive
chainloader +1
对应2003,下面也可以。
title Earlier Version of Windows
#查找WINDOWS XP/2003 ,有些grub版本还不支持find命令
find --set-root /ntldr
chainloader /ntldr
对应vista,在grub的menu.lst添加也可以,不指定分区
title Windows Vista(default)
#查找 Vista bootmgr ,有些grub版本还不支持find命令
fallback 4
find --set-root /bootmgr
chainloader /bootmgr
二、如果先装的UBUNTU,或者先装的XP后来重装XP,也可以在XP启动项中加入UBUNTU启动内容。
这个就需要在boot.ini中添加grldr,grldr如果放在C盘根目录下面的话,加c:\grldr=" Ubuntu"。还需要C盘下有BOOT文件夹,文件夹里是GRUB文件夹,内含MENU.LST文件。包括上面的grldr都是grub for dos里面包含的内容。MENU.LST的内容需要根据你的UBUTNU BOOT所在位置,及内核而定.grldr,arldr,ntldr分别是grub,dos工具箱,xp引导所用的三个文件。menu.lst内容类似下:
title Ubuntu 7.10, kernel 2.6.22-14-generic
root (hd0,*) #### *根据你的UBUNTU安装盘而定
kernel /vmlinuz-2.6.22-14-generic root=/dev/hda(n) ro quiet splash
initrd /initrd.img-2.6.22-14-generic
quiet
如此启动XP里,在启动项里先ubuntu,就可以进入LINUX系统。
先从ubuntu的grub选项中选择XP,再从XP选项中先ubuntu,一样能启动ubuntu,这与ubuntu启动菜单中直接选择启动不矛盾。
三、XP与VISTA,先XP,后VISTA没问题的了。
先VISTA后XP,在XP系统中使用VistaBootPRO 3.1设置也可以,有的会启动的时候会出现问题?据说需要dotnetfx.exe和langpack.exe两个文件。最后安装vistabootpro3.1.看这里:http://bbs.zol.com.cn/index20070812/index_308_6904.html
用VISTA光盘也可以修复吧。看来还是修复到vista启动xp?vista是加入不到xp的boot.ini中了吧。具体:放入光盘。CMD中#X: #cd boot #bootsect /nt60 sys 行了,bootsect /nt52 sys 这个命令是删除VISTA启动的。(CMD一定要在系统文件夹sysem32中的CMD,??什么意思)重启进入VISTA,http://www.zhaodll.net/dll/b/200701/2840.html这里有bootsect下载
bcdedit /create {ntldr} -d "!·#¥%……"
bcdedit /set {ntldr} device partition=d: #d vista盘符?
bcdedit /set {ntldr} path \ntldr
bcdedit /displayorder {ntldr} /addlast
由此看来,个人感觉grub是启动工具里面最好的东东。通吃。三系统有问题,装grub for dos 或者用ubuntu livecd启动,命令行下执行grub命令,写入MBR中grub,也行。grub麻烦的地方需要根据自己系统情况手动修改menu.lst项。建议用之。
四、先ubuntu,后vista又是什么情况。
下载grub4dos软件包
提取文件grldr 和grldr.mbr拷贝到C盘(文件系统要ntfs的)根目录
运行cmd,执行命令:
bcdedit /create /d "GRUB MENU" /application bootsector#
建立一个名称为“GRUB MENU”,通过加载类型为“引导扇区文件”的启动项
生成{ID}复制下来
bcdedit /set {ID} device partition=c: #设置引导扇区文件所在的分区,grldr.mbr所在分区
bcdedit /set {ID} path \grldr.mbr #指定引导扇区文件的路径和文件名
bcdedit /displayorder {ID} /addlast #增加这个Ubuntu的菜单项到末尾。
下面修改menu.lst,就行了。吼吼,xp用boot.ini. vista的bcdedit看这命令也是设置grldr的位置,这个命令添加到哪个文件去了呢?为什么不能用文本修改?
五、如果在ubuntu中终端下执行:
#dd if=/dev/sda3 of=/dev/sda6/linuxloader/ubuntu.lnx bs=512 count=1
/dev/sda3试你的ubuntu boot所在分区而定。生成ubuntu.lnx,用此文件取代上面grldr.mbr的话。
在vista下,用管理员权限运行cmd,然后
bcdedit /create /d "Ubuntu 7.04" /application bootsector
bcdedit /set {GUID} device partition=C:
bcdedit /set {GUID} path \ubuntu.lnx
bcdedit /displayorder {GUID} /addlast
就行了,不需要menu.lst
总结:由以上内容可知先装谁都没问题了,也是都可以修复的。xp-vista-ubuntu xp-ubuntu-vista vista-xp-ubuntu vista-ubuntu-xp ubuntu-vista-xp(嘿,这个真豺)ubuntu-xp-vista
如果续个MAC,还是不用MAC启动菜单好,在xp中加tboot。
Bcdedit 位于X:\Windows\system32\ "X:"为安装vista的盘符。
储存操作指令
====================
/createstore 创建一个新的空白启动配置数据文件。
bcdedit /createstore C:\Data\BCD 创建BCD启动配置数据文件储存到“C:\DATA\”文件夹。
/export 备份启动配置数据文件。
bcdedit /export "C:\Data\BCD Backup" 备份BCD启动配置文件到“C:\Data\”文件夹,并以“BCD Backup”命名。
/import 还原启动配置数据文件。
bcdedit /import "C:\Data\BCD Backup" 从“C:\Data\”文件夹恢复BCD启动配置文件。
储存项目操作指令
====================
/copy 项目拷贝
操作系统启动项目的拷贝:
bcdedit /copy {cbd971bf-b7b8-4885-951a-fa03044f5d71} /d "Copy of entry"
/create 新建项目
创建操作系统载入程序项目的 NTLDR(Ntldr):
bcdedit /create {ntldr} /d "Earlier Windows OS Loader"
创建存储器磁碟另外的选择项项目:
bcdedit /create {ramdiskoptions} /d "Ramdisk options"
创建一个新的操作系统启动项目:
bcdedit /create /d "Windows Vista" /application osloader
创建一个新的调试器:
bcdedit /create {dbgsettings} /d "Debugger Settings"
/delete 删除项目
删除指定的操作系统项目:
bcdedit /delete {cbd971bf-b7b8-4885-951a-fa03044f5d71}
删除指定的操作系统项目但启动时不显示项目(彻底删除):
bcdedit /delete {cbd971bf-b7b8-4885-951a-fa03044f5d71} /cleanup
删除指定的操作系统项目但启动时显示项目:
bcdedit /delete {cbd971bf-b7b8-4885-951a-fa03044f5d71} /nocleanup
删除操作系统载入程序项目的 NTLDR:
bcdedit /delete {ntldr} /f
项目选择操作指令
====================
/deletevalue 删除项目选择项。
删除启动管理的bootmgr选择项项目:
bcdedit /deletevalue {bootmgr} bootsequence
删除(WinPE)操作系统的数值开机项目:
bcdedit /deletevalue winpe
删除来自指定的操作的 Windows PE 数值系统开机项目:
bcdedit /deletevalue {cbd971bf-b7b8-4885-951a-fa03044f5d71} winpe
/set 设定项目选择项数值。
设定操作系统“cbd971bf-b7b8-4885-951a-fa03044f5d71”引导分区“C”:
bcdedit /set {cbd971bf-b7b8-4885-951a-fa03044f5d71} device partition=C:
指定的操作系统引导文件“ windows\ system 32\ winload.exe”:
bcdedit /set {cbd971bf-b7b8-4885-951a-fa03044f5d71} path \windows\system32\winload.exe
设定“NX”为“OptIn”:
bcdedit /set nx optin
更改系统名称
默认XP系统名称在Vista启动管理器中是"earlier version of Windows",更改:
bcdedit /set {ntldr} Deion "Windows XP Professional SP2"
默认Vista系统名称在Vista启动管理器中是"Microsoft Windows",更改:
bcdedit /set {current} Deion "Windows Vista 5456"
输出控制指令
====================
/enum 在储存中的列表项目。
列出所有的操作系统载入程序启动项目:
bcdedit /enum OSLOADER
列出所有的启动管理项目:
bcdedit /enum BOOTMGR
列出默认的启动项目:
bcdedit /enum {default}
列出指定的操作系统启动项目:
bcdedit /enum {b38a9fc1-5690-11da-b795-e9ad3c5e0e3a}
/v 列出所有活动的项目
bcdedit /enum ACTIVE /v
启动管理控制指令
====================
/bootsequence 设定启动列表顺序。
设定二个操作系统项目和启动顺序:
bcdedit /bootsequence {802d5e32-0784-11da-bd33-000476eba25f} {cbd971bf-b7b8-4885-951a- fa03044f5d71} {ntldr}
加入操作系统项目为启动列表最后项:
bcdedit /bootsequence {802d5e32-0784-11da-bd33-000476eba25f} /addlast
/default 设定默认启动项目。
设定默认启动项目:
bcdedit /default {cbd971bf-b7b8-4885-951a-fa03044f5d71}
设定默认启动操作系统程序为 NTLDR:
bcdedit /default {ntldr}
/displayorder 设定哪一个系统启动显示多启动画面。
设定二个操作系统项目和在启动管理显示命令中被建立操作系统载入的程序 NTLDR:
bcdedit /displayorder {802d5e32-0784-11da-bd33-000476eba25f}
{cbd971bf-b7b8-4885-951a-fa03044f5d71} {ntldr}
把指定的操作系统项目加入启动管理显示命令结束:
bcdedit /displayorder {802d5e32-0784-11da-bd33-000476eba25f} /addlast
/timeout 设定启动暂停数值。
/toolsdisplayorder 设定命令在哪一个启动管理显示工具画面。
设定二个工具项目和内存诊断在那启动管理工具显示命令:
bcdedit /toolsdisplayorder {802d5e32-0784-11da-bd33-000476eba25f}
{cbd971bf-b7b8-4885-951a-fa03044f5d71} {memdiag}
把指定的工具项目加入启动的结束管理工具显示命令:
bcdedit /toolsdisplayorder {802d5e32-0784-11da-bd33-000476eba25f} /addlast
为一个启动应用程序控制紧急处理服务的指令
====================
/bootems
开启启动管理紧急处理服务:
bcdedit /bootems {bootmgr} ON
/ems
为目前的操作系统启动项目 EMS 开启:
bcdedit /ems ON
/emssettings 设定紧急处理服务参数。
设定 EMS 参数使用基本输出入系统设定:
bcdedit /emssettings BIOS
本贴来自中关村在线产品论坛:<a href='http://group.zol.com.cn/'>http://group.zol.com.cn/</a>,本帖地址:<a href='http://nbbbs.zol.com.cn/1/9_64.html' target='_blank'>http://nbbbs.zol.com.cn/1/9_64.html</a>
在之前基于NT的Windows系统中,Windows使用Ntldr作为Boot Loader来启动系统,——所谓boot loader,在指在操作系统内核运行之前执行的一段小程序,系统通过它来初始化硬件设备、建立内存空间的映射图等,将系统的软硬件环境设置成一个合适的状态,为最终调用操作系统内核准备好正确的环境。——在启动过程中,Ntldr 使用Boot.ini 文件来确定在启动/引导过程中要显示哪些操作系统选项,我们对启动选项的设置可以通过修改boot.ini文件中相应内容实现。
在Windows Vista中,微软引入了一种全新的boot loader架构, Windows Boot Manager (Bootmgr.exe)。与Ntldr严重地依赖于硬件不同的是,Windows Vista中的新架构可以实现完整的硬件独立性,且能够与多种操作系统无缝结合,让Windows Vista的启动/引导过程更加快速与安全。同时,将之前Windows 系统中由Boot.ini管理的内容移交给新的Boot Configuration Data (BCD : 启动设置数据),当然,也提供了新的启动选项编辑工具,BCDEdit (BCDEdit.exe),来管理启动设置。
BCDEdit : Windows Vista启动设置编辑工具
在传统的基于BIOS的计算机中,如果只安装Windows Vista,除了极早期的Windows Vista测试版本外,您将会发现 Boot.ini 文件已经彻底从系统中消失;如果系统中安装了Windows Vista和之前的WIndows系统如Windows XP,虽然仍可找到 Boot.ini 文件,不过,这个文件只作用于那些系统,而不会对 Windows Vista的启动有任何影响。
在基于EFI (Extensible Firmware Interface : 可扩展固件接口,以后采用这种接口的PC会越来越多 )的计算机中,Boot.ini 文件则更不复存在,在基于EFI的系统中,启动选项被贮存在主板的存储器中。此时要修改启动选项,要么通过能够读写NVRAM的工具如NvrBoot,要么使用上文提到的BCDEdit。
由此可见,在Windows Vista中,想要再像之前Windows XP中那样通过一个简单的文本编辑器来修改Boot.ini的方式来管理启动选项已经不可能了,要对启动设置进行修改,只能使用命令格式相对要复杂得多的BCDEdit。
此外,微软也在Windows Vista 中提供了可通过WMI (Windows Management Instrumentation : Windows管理规范)调用的 BCD 类,通过它可以用编程的方式修改BCD数据,不过,相信对绝大多数用户而言,这更是不可能的任务。
启动BCDEdit
需要注意的是,BCDEdit不是一个运行于图形界面下的程序,而是一个命令行工具,该文件 (Bcdedit.exe) 位于 “\Windows\System32”目录下。
要执行BCDEdit,首先应进入命令行窗口,并要将操作用户并提升至管理员权限。
在命令行窗口中,转到系统目录如 “C:/windows/system32”下,然后输入“ bcdedit” 即可。
BCDEdit命令简介
通过命令行工具Bcdedit,我们可以添加、删除及修改BCD (Boot Configuration Data)中的对象。在BCD中,每个对象均具有唯一的 GUID (Globally Unique Identifier : 全局唯一标识符),如系统中的每块硬盘、每个分区的GUID (全局唯一标识符)均不相同。
在BCD中,硬盘或分区的GUID可分为如下几类:
{legacy} :指存在上一代Windows系统如Windows XP的硬盘或分区;
{default} : 默认操作系统所在硬盘或分区;
{current} : 当前硬盘或分区;
{c34b751a-ff09-11d9-9e6e-0030482375e7} : 类似于这个格式的GUID指其他安装了操作系统的硬盘或分区。
(注:这只是个例子,具体数字根据硬盘或分区参数会有相应变化,但均会类似于{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}格式)。
BCDEDIT命令
bcdedit /? : 显示命令帮助
bcdedit.exe /? CREATESTORE : 显示命令参数“ CREATESTORE ”的详细信息,——当然,“ CREATESTORE ”也只是示例,使用中对其他任何可用参数也均可使用类似格式查看该参数的具体说明。
bcdedit 或 bcdedit /enum all : 显示Windows Vista系统当前的启动设置数据,这时系统中所有安装了操作系统的硬盘或分区均会显示相应的 GUID 标识,如 {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} 。
使用BCDEdit备份与恢复启动选项
在对Windows Vista的启动选项修改之前,最好先对其备份,以防万一操作失误或其他故障导致系统无法启动。
bcdedit /export “D:\BCD Backup\Bcd Backup” : 将启动设置备份到D盘 “BCD Backup” 目录下;
bcdedit /import “D:\BCD Backup\Bcd Backup” : 恢复之前备份在D盘 “BCD Backup”目录下启动选项。
使用BCDEdit修改启动菜单选项
作为一种良好的操作习惯,在对Windows Vista的启动选项进行任何修改前,首先要对BCD中的启动选项进行备份,相应的命令上页我们已介绍过,在此不再赘述;其次,使用“bcdedit ”或“ bcdedit /enum all ”来查看系统中硬盘或分区的正确 GUID 标识,并将其记录下来。毕竟,BCDEdit只是一款命令行工具,我们操作时需手动输入类似“{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}”这样的长字符串时,很容易出错,而这往往会导致Windows Vista启动失败。
下面详细介绍使用BCDEdit修改启动选项的常用命令格式:
bcdedit /set {legacy} Description “Windows XP Professional SP2” : 修改上一代操作系统在启动菜单中的显示内容,比如说我们也可将其修改为“Vista天地专用XP SP2”之类。注意,命令中的引号不可省略;
bcdedit /set {current} description “Windows Vista Build 5270 x86″ : 修改当前启动硬盘或分区上的操作系统在启动菜单中的显示内容。注意,当前分区上的操作系统可能为Windows Vista,也可以是其他系统,当然,命令中的引号也不可省略;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} description “Windows Vista Build 5270 x64” : 修改安装于其他硬盘或分区的系统在启动菜单中的显示内容,使用这项命令时一定要注意该硬盘/分区的GUID输入正确,相应的GUID可通过“ bcdedit ”或“ bcdedit /enum all ”命令查看。
bcdedit /default {current} : 将当前启动硬盘/分区中的操作系统设置为默认启动的系统;
bcdedit /default {5189b25c-5558-4bf2-bca4-289b11bd29e2} : 设置指定GUID上的操作系统为默认启动的系统;
bcdedit /default {legacy} : 设置上一代Windows 系统Windows XP为默认启动的系统;
bcdedit /displayorder : 设置启用菜单中各项的显示顺序,如:
bcdedit.exe /displayorder {legacy} {current}
将首先显示Windows XP,然后再显示默认启动的系统如Windows Vista;
bcdedit /timeout 15 : 将默认的启动菜单显示时间30秒更改为15秒,当然,您可以将这个时间修改为任何您希望的数值。
使用BCDEdit修复硬盘/分区结构错误
在对启动选项的修改过程中,如添加或删除某个硬盘/分区时,可能会因操作中的不慎导致硬盘/分区结构的混乱,除了采用恢复修改前的备份方法外,也可以首先使用BCDEdit来尝试一下修复。
具体方法如下:
X:\>X:\boot\fixntfs.exe -lh -all : 这时的“ X: ”指引导目录 “boot” 所在的硬盘/分区;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} device partition=X: : 将指定GUID的分区设为启动分区。注意,这里的“ X: ”的GUID须与指定值不同,同时,运行该命令后,必须接着运行下面的osdevice命令;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} osdevice partition=X: : 将指定GUID的分区设为启动分区。注意,这个命令必须与上面的device命令配对使用,同时“ X: ”的GUID须与指定值不同。
资料引用:http://www.knowsky.com/340968.html
http://www.chinaz.com/Server/Linux/02252341R008.html
2008年9月23日
转自凡人足迹
参数:
options
返回值:
xmlHttpRequest
使用HTTP请求一个页面。
这是jquery的低级ajax实现。要查看高级抽象,见$.set、$.post等,这些方法更易于理解和使用。但是功能上有限制(例如,没有错误处理函数)。
警告:如果数据类型指定为"script",那么POST自动转化为GET方法。(因为script会作为一个嵌入页面的script标签进行载入)
$.ajax()函数返回它创建的XMLHttpRequest对象。在大部分情况下,你不需要直接操作此对象。通常,这个XMLHttpRequest对象主要用于需要手动中断XMLHttpRequest请求的时候。
注意:如果你指明了下面列出的数据类型,请确保服务端发送了正确的MIME响应类型(如. xml 的类型是 "text/xml")。错误的MIME类型能够导致脚本出现意想不到的问题。请查看AJAX的范例来了解数据类型的更多信息。
$.ajax()函数需要一个参数,一个包含有键/值对的对象,用于初始化并操作请求对象。
在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。
参数选项:
async(true) 数据类型: Boolean
默认情况下,所有的请求都是异步发送的(默认为true)。 如果需要发送同步请求, 设置选项为false。注意,同步请求可能会暂时的锁定浏览器, 当请求激活时不能进行任何操作。
beforeSend 数据类型: Function
一个预处理函数用于在发送前修改XMLHttpRequest对象,设置自定义头部等。 XMLHttpRequest作为惟一的参数被传递。这是一个 Ajax 事件。 function (XMLHttpRequest) {
this; // the options for this ajax request
}cache(true) 数据类型: Boolean
jQuery 1.2中新添加的参数, 如果设为false,则会强制浏览器不缓存请求的页面。
complete 数据类型: Function
当请求完成时执行的函数(在成功或失败之后执行)。这个函数有2个参数: XMLHttpRequest对象和一个描述HTTP相应的状态字符串。 这是一个 Ajax 事件。 function (XMLHttpRequest, textStatus) {
this; // the options for this ajax request
}contentType("application/x-www-form-urlencoded") 数据类型: String
发送到服务器的数据的内容类型。默认是 "application/x-www-form-urlencoded", 适合大多数情况。
data 数据类型: Object,String
要发送给服务器的数据。如果不是字符串,那么它会被转化为一个查询字符串。在GET请求中它被添加到url的末尾。要防止这种自动转化,请查看processData选项。 数据对象必须是一组键/值对。如果键对应的值是数组,jQuery会将其值赋给同一个键属性。 例如 {foo:["bar1", "bar2"]} 变为 '&foo=bar1&foo=bar2'。
dataType( Intelligent Guess (xml or html)) 数据类型: String
期待由服务器返回值类型。如果没有明确指定,jQuery会根据实际返回的MIME类型自动的将responseXML或responseText传递给success指定的回调函数。有效的类型(返回的类型的结果值会作为第一个参数传递给success指定的回调函数)有: "xml": 返回一个可以由jQuery处理的XML文档。
"html": 返回文本格式的HTML代码。包括求值后的脚本标记。
"script": 将响应作为javascript语句求值,并返回纯文本。不缓存此脚本,除非设置了cache选项。设置为"script"类型会将post方法转换为get方法。
"json": 将响应作为JSON求值,并返回一个Javascript对象。
"jsonp": 使用JSONP载入一个JSON代码块. 会在URL的末尾添加"?callback=?"来指明回调函数。(jQuery 1.2以上的版本支持)
"text": 文本格式的字符串
error 数据类型: Function
请求失败时执行的函数。函数具有3个参数: XMLHttpRequest对象,一个描述产生的错误类型和一个可选的异常对象, 如果有的化。 这是一个Ajax 事件。function (XMLHttpRequest, textStatus, errorThrown) {
// typically only one of textStatus or errorThrown
// will have info
this; // the options for this ajax request
}global(true) 数据类型: Boolean
是否为当前的请求触发全局AJAX事件处理函数,默认值为true。设置为false可以防止触发像ajaxStart或ajaxStop这样的全局事件处理函数。这可以用于控制多个不同的Ajax事件。
ifModified(false) 数据类型: Boolean
只有响应自上次请求后被修改过才承认是成功的请求。是通过检查头部的Last-Modified值实现的。默认值为false,即忽略对头部的检查
jsonp 数据类型: String
在jsonp请求中重新设置回调的函数。这个值用于代替'callback=?'中的查询字符串。'callback=?'位于get请求中url的末尾或是post请求传递的数据中。因此设置 {jsonp:'onJsonPLoad'} 会将 'onJsonPLoad=?' 传送给服务器。
processData(true) 数据类型: Boolean
在默认的情况下,如果data选项传进的数据是一个对象而不是字符串,将会自动地被处理和转换成一个查询字符串,以适应默认的content-type--"application/x-www-form-urlencoded"。如果想发送domDocuments,就要把这个选项设置为false。
success 数据类型: Function
当请求成功时调用的函数。这个函数会得到二个参数:从服务器返回的数据(根据“dataType”进行了格式化)和一个描述HTTP相应的状态字符串。这是一个 Ajax 事件。 function (data, textStatus) {
// data could be xmlDoc, jsonObj, html, text, etc...
this; // the options for this ajax request
}timeout 数据类型: Number
如果通过$.ajaxSetup设置了一个全局timeout,那么此函数使用一个局部timeout覆盖了全局timeout(单位为毫秒)。例如,你可以设置比较长的延迟给一个特殊的请求,同时其他所有请求使用1秒的延迟。有关全局延迟,见$.ajaxTimeout()。
type("GET") 数据类型: String
请求的类型 ("POST" 或 "GET"), 默认是 "GET"。注意:其他的HTTP请求方法,如PUT和DELETE,在这里也可以使用,当时它们并不被所有的浏览器支持。
url(The current page) 数据类型: String
请求发送的目标URL地址
username 数据类型: String
username可用于在响应一个HTTP连接时的认证请求。 实例
载入并执行一个JavaScript文件。
$.ajax({
type: "GET",
url: "test.js",
dataType: "script"
});保存数据到服务器,完成后通知用户。
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});取得一个HTML页面的最新版本。
$.ajax({
url: "test.html",
cache: false,
success: function(html){
$("#results").append(html);
}
});同步载入数据。在执行请求的时候阻塞浏览器。这是在保证数据的同步性比交互更重要的情况下的一种更好的方法。
var html = $.ajax({
url: "some.php",
async: false
}).responseText;向服务器发送xml文档数据。通过设置processData选项为false,将数据自动转换为string的动作被禁止了。
var xmlDocument = [create xml document];
$.ajax({
url: "page.php",
processData: false,
data: xmlDocument,
success: handleResponse
});load( url, [data], [callback] )参数:
url (String): 装入页面的URL地址。
params (Map): (可选)发送到服务端的键/值对参数。
callback (Function): (可选) 当数据装入完成时执行的函数. function (responseText, textStatus, XMLHttpRequest) {
this; // dom element
}返回值:
jQuery
装入一个远程HTML内容到一个DOM结点。 默认使用get方法发送请求,但如果指定了额外的参数,将会使用post方法发送请求。在 jQuery 1.2中,可以在URL参数中指定一个jQuery选择器,这会过滤返回的HTML文档,只取得文档中匹配选择器的元素。此语法类似于"url #some > selector"。
实例
载入文档的sidebar的导航部分到一个无序列表中。
$("#links").load("/Main_Page #p-Getting-Started li");将feeds.html文件载入到id为feeds的div中。
$("#feeds").load("feeds.html");同上,但是发送了附加的参数,并且在响应结束后执行一个自定义函数。
$("#feeds").load("feeds.php", {limit: 25}, function(){
alert("The last 25 entries in the feed have been loaded");
});jQuery.get( url, [data], [callback] )参数:
url (String): 装入页面的URL地址
Map(可选): (可选)发送到服务端的键/值对参数
callback (Function): (可选) 当远程页面装入完成时执行的函数 function (data, textStatus) {
// data可以是xmlDoc, jsonObj, html, text, 等...
this; // the options for this ajax request
}返回值:
XMLHttpRequest
使用GET请求一个页面。
这是向服务器发送get请求的简单方法。它可以指定一个回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。
实例
请求test.php页,忽略返回值.
$.get("test.php");请求test.php页并发送附加数据(忽略返回值).
$.get("test.php", { name: "John", time: "2pm" } );显示从test.php请求的返回值(HTML 或 XML, 根据不同返回值).
$.get("test.php", function(data){
alert("Data Loaded: " + data);
});显示向test.cgi发送附加数据请求的返回值 (HTML 或 XML, 根据不同返回值).
$.get("test.cgi", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});jQuery.getJSON( url, [data], [callback] )参数:
url (String): 装入页面的URL地址
Map(可选): (可选)发送到服务端的键/值对参数
callback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {
// data will be a jsonObj
this; // the options for this ajax request
}返回值:
XMLHttpRequest
使用GET请求JSON数据。
在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。注意: 请记住, that lines after this function will be executed before callback.
实例
从Flickr JSONP API中载入最新的四幅猫的图片
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
function(data){
$.each(data.items, function(i,item){
$("<img/>").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});从test.js载入JSON数据, 从返回的JSON数据读取name值。
$.getJSON("test.js", function(json){
alert("JSON Data: " + json.users[3].name);
});从test.js载入JSON数据, 传递一个附加参数,从返回的JSON数据读取name值。
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
alert("JSON Data: " + json.users[3].name);
});显示向test.php发送请求的返回值 (HTML 或 XML, 根据不同返回值).
$.getIfModified("test.php", function(data){
alert("Data Loaded: " + data);
});显示向test.php发送请求的返回值 (HTML 或 XML, 根据不同返回值),提供了一个附加的参数.
$.getIfModified("test.php", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});列出从pages.php返回的查询结果,将返回的数组转化为一段HTML代码。
var id=$("#id").attr("value");
$.getJSON("pages.php",{id:id},dates);
function dates(datos)
{
$("#list").html("Name:"+datos[1].name+"<br>"+"Last Name:"+datos[1].lastname+"<br>"+"Address:"+datos[1].address);
}jQuery.getScript( url, [callback] )参数:
url (String): 装入页面的URL地址
callback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {
// data应该是javascript
this; // the options for this ajax request
}返回值:
XMLHttpRequest
使用GET请求JavaScript文件并执行。
在jQuery 1.2前, getScript只能从页面所在的主机载入脚本,1.2中, 你可以从任何主机载入脚本。警告: Safari 2 及其更老的版本不能在全局上下文中正确识别脚本。如果你通过getScript载入函数,请保证设置一个延迟来执行这个脚本。
实例
我们动态的载入一个新的官方jQuery颜色动画插件,载入后绑定一些动画效果到元素上。
$.getScript("http://dev.jquery.com/view/trunk/plugins/color/jquery.color.js", function(){
$("#go").click(function(){
$(".block").animate( { backgroundColor: 'pink' }, 1000)
.animate( { backgroundColor: 'blue' }, 1000);
});
});载入test.js JavaScript文件并执行。
$.getScript("test.js");载入test.js JavaScript文件并执行,当执行结束后显示一条警告信息。
$.getScript("test.js", function(){
alert("Script loaded and executed.");
});jQuery.post( url, [data], [callback], [type] )参数:
url (String): 装入页面的URL地址
Map(可选): (可选)发送到服务端的键/值对参数
callback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {
// data可能是 xmlDoc, jsonObj, html, text, 等...
this; // the options for this ajax request
}String $.postJSON = function(url, data, callback) {
$.post(url, data, callback, "json");
};返回值:
XMLHttpRequest
使用POST请求一个页面。
这是向服务器发送post请求的简单方法。它可以指定一个回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。
ajaxComplete( callback )参数:
callback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {
this; // dom element listening
}返回值:
jQuery
当一个AJAX请求结束后,执行一个函数。这是一个Ajax事件
实例
当AJAX请求完成时显示一条信息。
$("#msg").ajaxComplete(function(request, settings){
$(this).append("<li>Request Complete.</li>");
});ajaxError( callback )参数:
callback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions, thrownError) {
// thrownError only passed if an error was caught
this; // dom element listening
}返回值:
jQuery
当一个AJAX请求失败后,执行一个函数。这是一个Ajax事件.
实例
当AJAX请求错误时显示一条信息。
$("#msg").ajaxError(function(request, settings){
$(this).append("<li>Error requesting page " + settings.url + "</li>");
});ajaxSend( callback )参数:
callback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {
this; // dom element listening
}返回值:
jQuery
在一个AJAX请求发送时,执行一个函数。这是一个Ajax事件.
实例
当AJAX请求发出后显示一条信息。
$("#msg").ajaxSend(function(evt, request, settings){
$(this).append("<li<Starting request at " + settings.url + "</li<");
});ajaxStart( callback )参数:
callback (Function): 要执行的函数 function () {
this; // dom element listening
}返回值:
jQuery
在一个AJAX请求开始但还没有激活时,执行一个函数。这是一个Ajax事件.
实例
当AJAX请求开始(并还没有激活时)显示loading信息。
$("#loading").ajaxStart(function(){
$(this).show();
});ajaxStop( callback )参数:
callback (Function): 要执行的函数 function () {
this; // dom element listening
}返回值:
jQuery
当所有的AJAX都停止时,执行一个函数。这是一个Ajax事件.
实例
当所有AJAX请求都停止时,隐藏loading信息。
$("#loading").ajaxStop(function(){
$(this).hide();
});ajaxSuccess( callback )参数:
callback (Function): 要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {
this; // dom element listening
}返回值:
jQuery
当一个AJAX请求成功完成后,执行一个函数。这是一个Ajax事件
实例
当AJAX请求成功完成时,显示信息。
$("#msg").ajaxSuccess(function(evt, request, settings){
$(this).append("<li>Successful Request!</li>");
});jQuery.ajaxSetup( options )参数:
Options: 用于Ajax请求的键/值对
为所有的AJAX请求进行全局设置。查看$.ajax函数取得所有选项信息。
实例
设置默认的全局AJAX请求选项。
$.ajaxSetup({
url: "/xmlhttp/",
global: false,
type: "POST"
});
$.ajax({ data: myData });serialize( )返回值:
jQuery
以名称和值的方式连接一组input元素。返回值类似于: single=Single2&multiple=Multiple&multiple=Multiple3&radio=radio2 。在jQuery 1.2中。serialize方法实现了正确表单元素序列,而不再需要插件支持。
实例
连接表单元素的一组查询字符串,可用于发送Ajax请求。
function showValues() {
var str = $("form").serialize();
$("#results").text(str);
}
$(":checkbox, :radio").click(showValues);
$("select").change(showValues);
showValues();serializeArray( )返回值:
jQuery
连接所有的表单和表单元素(类似于.serialize()方法),但是返回一个JSON数据格式。
实例
从form中取得一组值,显示出来
function showValues() {
var fields = $(":input").serializeArray();
alert(fields);
$("#results").empty();
jQuery.each(fields, function(i, field){
$("#results").append(field.value + " ");
});
}
$(":checkbox, :radio").click(showValues);
$("select").change(showValues);
showValues();
2008年9月22日
EditPlus技巧
------------------------------------------------------
技巧中,基于平时我对EditPlus的摸索实践而成,在编译器集成例子中参照了部分官方的文献。有几篇是从网上搜集来的,这里我注明了来源或原始作者。如果你是相应作者,不希望文章放在这里,请通知我,我会及时删掉。 -----Liangjh
自己写的一些里面,不见得有多大的技术含量,只是希望有时能够节省大家的一些时间
------------------------------------------------------
文章或者技巧及原始作者或出处:
正则表达式类
【1】 正则表达式应用——替换指定内容到行尾
【2】 正则表达式应用——数字替换----------------------------Microshaoft@CCF,jiuk2k@CCF
【3】 正则表达式应用——删除每一行行尾的指定字符
【4】 正则表达式应用——替换带有半角括号的多行
【5】 正则表达式应用——删除空行----------------------------江德华
软件技巧类
------------------------------------------------------
【6】 软件技巧——键盘记录的注意事项
【7】 软件技巧——关闭文档标签的便捷方法
【8】 软件技巧——如何去掉 EditPlus 保存文本文件时的添加后缀提示?
【9】 软件技巧——提示找不到语法文件的解决办法
【10】软件技巧——设置editplus支持其它文字,如韩文----------jackywu1978@LJF
【11】软件技巧——FTP 上传的设置----------------------------李应文2.11汉化版
【12】软件技巧——如何禁用备份文件功能?
【13】软件技巧——添加语法文件、自动完成文件、以及剪辑库文件
工具集成类
------------------------------------------------------
【14】工具集成——编译器集成例子(Java、Borland C++、Visual C++、Inno Setup、nsis、C#)
【15】工具集成——让Editplus调试PHP程序----------------------avenger,aukw@CCF
【16】工具集成——打造 PHP 调试环境(二)----------------------老七2.11汉化版
【17】在 WINPE 中集成 EDITPLUS
后续添加
------------------------------------------------------
【18】支持带UTF-8标记/不带UTF-8标记的文件
【19】建立文件关联,以便在资源管理器中双击打开对应语法文件
【20】特别应用,双击单词选择问题
【21】在Editplus中使用CVS版本控制功能---------------------sunbn@CCF
每个步骤都说得很详细了,就没有必要贴图了,体积不要太大才好。
【1】正则表达式应用——替换指定内容到行尾
原始文本如下面两行
abc aaaaa
123 abc 444
希望每次遇到“abc”,则替换“abc”以及其后到行尾的内容为“abc efg”
即上面的文本最终替换为:
abc efg
123 abc efg
解决:
① 在替换对话框,查找内容里输入“abc.*”
② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮
其中,符号的含义如下:
“.” =匹配任意字符
“*” =匹配0次或更多
注意:其实就是正则表达式替换,这里只是把一些曾经提出的问题加以整理,单纯从正则表达式本身来说,就可以引申出成千上万种特例。
【2】正则表达式应用——数字替换 (Microshaoft@CCF,jiuk2k@CCF)
希望把
asdadas123asdasdas456asdasdasd789asdasd
替换为:
asdadas[123]asdasdas[456]asdasdasd[789]asdasd
在替换对话框里面,勾选“正则表达式”复选框;
在查找内容里面输入“[0-9][0-9][0-9]”,不含引号
“替换为:”里面输入“[\0\1\2]”,不含引号
范围为你所操作的范围,然后选择替换即可。
实际上这也是正则表达式的使用特例,“[0-9]”表示匹配0~9之间的任何特例,同样“[a-z]”就表示匹配a~z之间的任何特例
上面重复使用了“[0-9]”,表示连续出现的三个数字
“\0”代表第一个“[0-9]”对应的原型,“\1”代表第二个“[0-9]”对应的原型,依此类推
“[”、“]”为单纯的字符,表示添加“[”或“]”,如果输入“其它\0\1\2其它”,则替换结果为:
asdadas其它123其它asdasdas其它456其它asdasdasd其它789其它asdasd
■功能增强(by jiuk2k@CCF):
如果将查找内容“[0-9][0-9][0-9]”改为“[0-9]*[0-9]”,对应1 或 123 或 12345 或 ...
也可以这样定制
查找: ([0-9]+)
替换: [\1]或 [$1]
在 \1 或大或 $1 后面加入欲替换目标
■补充(by jiuk2k@CCF)
editplut支持的只是Regular expression 的子集,如果用其它支持全集的替换软件可以如下简单操作
正则表达式应用——数字替换 :
search: ([\d]+)
replace: [\1] or [$1]
editplus:
search: ([0-9]+)
replace: [\1]
【3】正则表达式应用——删除每一行行尾的指定字符
因为这几个字符在行中也是出现的,所以肯定不能用简单的替换实现
比如
12345 1265345
2345
需要删除每行末尾的“345”
这个也算正则表达式的用法,其实仔细看正则表达式应该比较简单,不过既然有这个问题提出,说明对正则表达式还得有个认识过程,解决方法如下
解决:
在替换对话框中,启用“正则表达式”复选框
在查找内容里面输入“345$”
这里“$”表示从行尾匹配
如果从行首匹配,可以用“^”来实现,不过 EditPlus 有另一个功能可以很简单的删除行首的字符串
a. 选择要操作的行
b. 编辑-格式-删除行注释
c. 在弹出对话框里面输入要清除的行首字符,确定
【4】正则表达式应用——替换带有半角括号的多行
几百个网页中都有下面一段代码:
我想把它们都去掉,可是找了很多search & replace的软件,都是只能对“一行”进行操作。
EditPlus 打开几百个网页文件还是比较顺畅的,所以完全可以胜任这个工作。
具体解决方法,在 Editplus 中使用正则表达式,由于“(”、“)”被用做预设表达式(或者可以称作子表达式)的标志,所以查找
“\n”
时会提示查找不到,所以也就无法进行替换了,这时可以把“(”、“)”使用任意字符标记替代,即半角句号:“.”。替换内容为
\n
在替换对话框启用“正则表达式”选项,这时就可以完成替换了
补充:(lucida@******)
对( ) 这样的特殊符号,应该用\( \)来表示,这也是很标准的regexp语法,可以写为
\n
■补充(by jiuk2k@CCF)
editplut支持的只是Regular expression 的子集,如果用其它支持全集的替换软件可以如下简单操作
search:
replace: 空格
【5】正则表达式应用——删除空行
启动EditPlus,打开待处理的文本类型文件。
①、选择“查找”菜单的“替换”命令,弹出文本替换对话框。选中“正则表达式”复选框,表明我们要在查找、替换中使用正则表达式。然后,选中“替换范围”中的“当前文件”,表明对当前文件操作。
②、单击“查找内容”组合框右侧的按钮,出现下拉菜单。
③、下面的操作添加正则表达式,该表达式代表待查找的空行。(技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,并且以回车符结尾,查找空行的关键是构造代表空行的正则表达式)。
直接在"查找"中输入正则表达式“^[ \t]*\n”,注意\t前有空格符。
(1)选择“从行首开始匹配”,“查找内容”组合框中出现字符“^”,表示待查找字符串必须出现在文本中一行的行首。
(2)选择“字符在范围中”,那么在“^”后会增加一对括号“[]”,当前插入点在括号中。括号在正则表达式中表示,文本中的字符匹配括号中任意一个字符即符合查找条件。
(3)按一下空格键,添加空格符。空格符是空行的一个组成成分。
(4)选择“制表符”,添加代表制表符的“\t”。
(5)移动光标,将当前插入点移到“]”之后,然后选择“匹配 0 次或更多”,该操作会添加星号字符“*”。星号表示,其前面的括号“[]”内的空格符或制表符,在一行中出现0个或多个。
(6)选择“换行符”,插入“\n”,表示回车符。
④、“替换为”组合框保持空,表示删除查找到的内容。单击“替换”按钮逐个行删除空行,或单击“全部替换”按钮删除全部空行(注意:EditPlus有时存在“全部替换”不能一次性完全删除空行的问题,可能是程序BUG,需要多按几次按钮)。
■补充(by jiuk2k@CCF)
editplut支持的只是Regular expression 的子集,如果用其它支持全集的替换软件可以如下简单操作
search: ^\s+
replace: 空格
相关内容还有很多,可以自己参考正则表达式的语法仔细研究一下
【6】软件技巧——键盘记录的注意事项
EditPlus 的键盘记录有些类似于 UltraEdit 的宏操作,不过功能相对单一,录制的文件可编辑性较差。
由于基本无法编辑录制的文件,所以录制的时候为了避免录制失败,推荐纯粹使用键盘操作,以下是比较关键的几个键盘组合:
Ctrl+F = 调出查找对话框
Ctrl+H = 调出替换对话框
Alt+F4 = 关闭作用,比如,关闭查找对话框、关闭替换对话框,等等
其它键盘快捷键在“帮助-快捷键列表”里面可以很容易的查找到,这里就不细说了。
【7】软件技巧——关闭文档标签的便捷方法
右键单击文档标签工具条,弹出菜单中选择“标签选项”,选中“用鼠标中间的按钮关闭”,这里包括鼠标的滚轮。
【8】软件技巧——如何去掉 EditPlus 保存文本文件时的添加后缀提示?
如果你使用 EditPlus 进行文本编辑,那么每次创建文本文件,编辑后保存时,尽管文件类型下拉列表中显示的是文本文件, EditPlus 还是询问你是否添加".txt"后缀,是不是很烦?
解决方法:
① 在程序目录建立一个空的文件“template.txt”
② “工具-参数设置-模板”里面,单击“添加”按钮添加模板,“菜单文本”这里输入“Text”,浏览“template.txt”,之后确定即可
③ “文件-新建-text”,就可以建立一个空的文本文件,保存时,这个文件自动带有扩展名".txt",也就避免了令人头疼的确认
④ 模板设置文件名称为“template.ini”,如果和主程序同一路径,可以使用相对路径
罗嗦了点,不过管用
要自动创建带有某种后缀的文件,方法同上。
【9】软件技巧——提示找不到语法文件 *.stx 的解决办法
原因多为设置的语法文件不存在或者是路径设置不对。这是因为 EditPlus 的语法是设置文件采用的是绝对路径,而在你设置了语法文件之后,再把程序复制到其它目录,因而导致 EditPlus 无法找到该语法文件。
解决办法:
在主程序目录里,找到 Setting.ini 这是 EditPlus 存放语法的文件
查找后缀为“.stx”、“acp”的文本内容,或者查找带有驱动器符号的行,比如
Syntax file=C:\Program Files\EditPlus 2\cpp.stx
那么,就把”C:\Program Files\EditPlus 2\“替换成你当前软件的路径。
其它提示找不到文件的解决方法同上
【10】软件技巧——设置editplus支持其它文字,如韩文
在editplus里打开文件,出来打开文件对话框;然后点击“转换器”后面的那个省略号,会出来自定义转换器对话框;在右边选择你需要的编码方式,添加到左边,然后点确定;最后在下拉框中选择需要的编码方式,然后打开文件即可。
【11】软件技巧——FTP 上传的设置
“文件->远程操作->FTP 上传”在“设置”选项卡中设置好参数(“子目录”前面应该加“/”如“/web/”),点击“确定”回到“FTP 上传”选项卡,然后点击“上传”即可;“批量上传”的设置类似。
【12】软件技巧——如何禁用备份文件功能?
在“参数选择”的文件选项页,禁用“'保存时自动创建备份文件”选项
【13】软件技巧——添加语法文件、自动完成文件、以及剪辑库文件
要添加 *.STX(语法文件)或 *.ACP(自动完成文件):
1. 选择“参数选择→语法”
2. 单击“添加”按钮,命名,在“扩展名”部分输入对应扩展名(不带“.”)
3. 浏览/输入 STX(语法文件部分) 以及 ACP(自动完成文件部分)。
添加剪辑库文件(*.CTL)
复制相应 *.CTL 文件到软件安装目录,重新启动 EditPlus ,则系统自动识别。
作者主页有很多语法自动完成文件下载,地址
http://editplus.com/files.html
【14】工具集成——编译器集成例子(Java、Borland C++、Visual C++、Inno Setup、nsis)
在“工具→参数选择→用户工具”选项页设置,设置步骤
① 设置组名称,这里也可以不设置
② 单击“添加工具→应用程序”按钮并进行如下设置
③ 各种类似"$(FilePath)"的参数可以在文本框右侧的箭头下拉菜单中获取,具体含义如下
参数 描述
$(FilePath) 文件路径(文件全名,含目录和文件名)
$(FileDir) 文件目录(不带文件名)
$(FileName) 文件名(不带目录)
$(FileNameNoExt) 不带扩展名的文件名(不带目录)
$(FileExt) 扩展名(当前文件)
$(ProjectName) 工程名称(当前工程名)
$(CurLine) 当前行号(光标位置处的行号)
$(CurCol) 当前列号(光标位置处的列号)
$(CurSel) 当前文本(插入当前选定文本)
$(CurWord) 当前单词(插入当前单词)
$(WindowList) 显示当前窗口列表并选择特定文件
例子 1. Java 编译器
菜单文本:Java 编译器
命令:c:\java\bin\javac.exe
参数:"$(FilePath)"
初始目录:$(FileDir)
捕获输出:开启
要运行已编译的 Java 类文件,你可以进行如下设置:
菜单文本:Java
命令:c:\java\bin\java.exe
参数:$(FileNameNoExt)
初始目录:$(FileDir)
“命令”部分应当替换为实际的 Java 解释器的路径。
例子 2. Borland C++
菜单文本:Borland C
命令:c:\bc\bin\bcc32.exe
参数:-Ic:\bc\include -Lc:\bc\lib -n$(FileDir) $(FilePath)
初始目录:c:\bc\bin
捕获输出:开启
例子 3. Visual C++
菜单文本:Visual C++
命令:c:\msdev\vc98\bin\cl.exe
参数:"$(FilePath)"
初始目录:$(FileDir)
捕获输出:开启
例子 4. Inno Setup
菜单文本:编译 Inno
命令:C:\Program Files\Inno Setup 4\Compil32.exe”
参数:/cc $(FileName)
初始目录:$(FileDir)
捕获输出:开启
例子 5. nsis
菜单文本:编译 nsis
命令:C:\NSIS\makensis.exe
参数:$(FileName)
初始目录:$(FileDir)
捕获输出:开启
例子 6. C#
菜单文本:编译 C#
命令:C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\csc.exe
参数:$(FileName)
初始目录:$(FileDir)
捕获输出:开启
在上面设置中,在命令部分,必须使用系统中各自编译器的绝对路径。
设置完毕后,你可以在“工具”菜单运行对应工具了,运行结果会显示在底部的输出窗口,你也可以通过快捷键(Ctrl + 0-9) 运行,或者是通过“用户工具栏”的快捷按钮运行。
要运行已编译的 *.exe 文件,你可以进行如下设置(此时可执行文件需要和编译文件同名):
菜单文本:Run
命令:$(FileNameNoExt)
参数:
初始目录:$(FileDir)
【15】工具集成—— 让Editplus调试PHP程序
1:打开Editplus,选择"工具->配置用户工具..."菜单。
2:在弹出的窗口中选择"添加工具->应用程序",给新程序起一个好记的名字,比如这里我们用"Debug PHP",在"菜单文本"中输入"Debug PHP"。点击"命令行"右边的按钮,找到你的php.exe所在的路径,例如这里是"c:\php\php.exe"。再点击"参数"右边的下拉按钮选择"文件路径",最后再把"捕获输出"前面的复选框选上。
3:现在测试一下,新建一个php文件,按快捷键Ctrl+1可以激活刚才我们设置的工具(如果你设置了多个工具,快捷键可能会有所不同),现在你可以看到它已经能正常工作了。但是还有一点不太理想:如果你的PHP程序出错,在输出窗口会提示你第几行出错 ,单击这一行提示,Editplus老是提示你找不到某某文件,是否新建。接下下我们要修正这个功能。
4:打开刚才用户工具设置窗口,找到刚才设置的"Debug PHP"工具。点击"捕获输出"复选框旁边的"输出模式"按钮,会弹出一个定义输出模式的窗体,把"使用默认输出模式"前面的复选框去掉, 在"正则表达式"这一项的文本框中输入" ^.+ in (.+) line ([0-9]+) "(不包括引号),细心的朋友可能会发现,这里使用的也正则表达式的语法。然后,在下面的"文件名"下拉菜单中选择"预设表达式 1",即上边正则表达式中的第一个参数,"行"下拉菜单项选择"预设表达式 2","列"下拉项保持为空。然后保存设置。
5:好了,现在再来试一下吧,双击出错的行数,Editplus就会自动激活出错文件,并把光标定位到出错行,是不是特别方便呢?!
现在,Editplus经过我们的"改造",已经可以即时的调试PHP文件了,虽然还不是"可视化"界面的,但对于一些平常的小程序来查错还是非常好用的。Editplus真是不款不可多得的好工具,如果你有什么使用技巧,不要忘了大家一起分享哦。^O^
如果不能切换错误行号,请尝试作如下修改: (by aukw@CCF)
1.php.ini 中html_errors = Off打开
//如果你不打开,3.中的表达式要修改
2.参数改成:-q -f "$(FilePath)"
//不加"符号的话文件名有空格的文件调试失败。。
//-q不输出html头信息,你去掉也行,不过调试时候你一般用不到那些header信息
3." ^.+ in (.+) line ([0-9]+) " 改成 "^.+ in (.+) on line ([0-9]+)$"
//如果还是不行,请注意调试结果,自己修改表达式来取出文件名和行号
【16】工具集成——打造 PHP 调试环境(二)
1: 把剪辑库定位在 PHP4 Functions 上就可以在编辑时, 利用[插入]->[匹配剪辑]命令,就可以自动完成末输入完整的 PHP 函数(或直接按 F2 键)
2: 类似上面,在选择部分文字后,同样可以自动完成。(同 F2)
3: 在[参数选择]->[设置和语法]->PHP->自动完成, 选择目录下的 php.acp 文件,你可以定制自己的自动完成方式.
4: 想要即时预览文件,可在[参数选择]->[工具]->WEB 服务器中添加本地目录,(注意不要加 http:// , 应是一个有效的站点)。
如: 主机->localhost/php | 根目录->D:\php
主机->localhost/asp | 根目录->D:\asp
主机->localhost/cgi | 根目录->D:\cgi
完成设置后只要脚本文件位于这些目录下(子目录也没问题), 就能够正确解释.
5: 各种语法和模板文件可以在 http://editplus.com/files.html 获得,可根据需要选用和编辑。
6: Ctrl+F11 可显示当前文件中的函数列表.
7: 添加各种用户工具.如:
启动MYSQL服务器管理工具->C:\mysql\bin\winmysqladmin.exe
启动Apache服务器->C:\Apache\bin\Apache.exe -k start
启动Apache服务器->C:\Apache\bin\Apache.exe -k stop (shutdown)
8: DBG 附带有一个 prof_results.php 文件,可剖析 PHP 程序的性能.
虽不是真正的调试器,但已经够了.
OK! 经过改造后,是不是有点象一个 IDE 什么?还差点,没有即时帮助...看我的,再来:
9: 把 php_manual_en.chm (最好是扩展帮助手册)加入到用户工具中, 当遇到需要参考的关键字时, 把光标定位其上, 按下快捷键 Ctrl+1, 看到了吗.
在输入时有想不起来的函数名时, 先按照第 1 条的方法调出函数, 然后...怎么样?
以上有的是对于调试工具的设置,由于此类工具比较多,大家设置时参考以上的基本就差不多了,所以就不过多的列举了。
【17】在 WINPE 中集成 EDITPLUS
可以基于目前的bartpe做得WINPE中,菜单使用nu2menu制作
默认位置为 \programs\editplus\
默认系统位置为光盘的 i386 目录
i386/system32 的 autorun.bat 中添加外壳集成(系统右键)
regedit /s %SystemDrive%\programs\editplus\REG.REG
regsvr32 /s \programs\editplus\EPPSHELL.DLL
(reg.reg保存了epp的工具栏信息,当然注册用户也可以放置注册信息)
复制editplus安装包里面的文件到programs\editplus\,注意,如果有setting.ini,删掉该文件,在nu2menu里面加入以下句子(可以根据需要安排位于特定菜单条目下)
FUNC="@GetProgramDrive()\Programs\EditPlus\editplus.exe">EditPlus 文本编辑
【18】支持带UTF-8标记/不带UTF-8标记的文件 Lei@******提出并测试
这里Byte Order Mark翻译为标记/文件头/标签
参数选择-文件-里面设置“支持不带有UTF-8文件头的UTF-8文件”,我这里翻译标签为UTF-8文件头,如果复选该项,应该是保存为不带标签的Utf-8,如果不复选,应该是保存成带有BOM的UTF-8。
这样就可以打开带签名的UTF-8文件,并且可以正常编辑,但是又不能打开不带签名的了,想要打开不带签名的还需要改回来...不过虽然有点麻烦,但是总算能用了
【19】建立文件关联,以便在资源管理器中双击打开对应语法文件
Editplus中可以设置各种语法,如果希望建立文件关联:
在“参数选择-语法”对话框中,选择一个语法,如C++,在下面的“语法设置”标签里面,选择“关联到资源管理器中”,以后双击对应文件后缀的时候,就会直接启用EditPlus打开了。
【20】特别应用,双击单词选择问题
比如对于下面文本,希望双击“1234”位置,就可以选择“1234”,而不是选择整行
ABCD-1234-EFGH-ACDE
软件默认是选择整行,这时可以自己进行设置,打开“参数选择”,在“常规”选项页的第三个选项里面(双击单词截止府),添加输入“-“,确认,以后就可以实现截止符之间的内容了
【21】在Editplus中使用CVS版本控制功能 sunbn@CCF
CVS是开放源代码的版本控制系统,CVS作为一个免费的优秀的版本管理工具被广泛的使用在许多的软件公司的软件配置管理过程中。
我们经常使用的CVS客户端是WinCVS,或者JBuilder/Eclipse内置的CVS功能。可是有时候编辑html文件、PHP/Perl文件或者Java文件的时候经常使用到轻便的编辑工具——Editplus2.x,往往编辑完了之后需要使用WinCVS再进行更新或者提交操作,来回切换程序窗口很是麻烦。如何让Editplus也能够方便的使用CVS功能呢,其实利用Edit plus的“User Tool”——“用户工具”功能就可以实现。其方便程度甚至快追上一些IDE了,而且经过测试,进行简单的CVS提交和更新动作比WinCVS要快一些。
在设置之前我们还是要安装WinCVS的客户端,因为要用到cvs.exe这个命令行工具完成我们的工作,安装好WinCVS之后,需要将WinCVS的安装路径写到系统的全局变量“Path”中,使系统可以找到cvs.exe这个可执行程序。或者在下面 的设置中指定cvs程序的绝对路径。
具体设置方法如下:
1、菜单中Tools>>Preference,在设置对话框选择“Files”,勾选“reload modified files automatically”,即自动载入被修改的文件。
2、菜单中Tools>>Configure User Tools,点击Group Name,将一个Group名称设置为CVS。
3、在“Group and tool items”下拉框中选择我们新建的CVS Group
4、点击“Add Tool >> ”按钮新增一个Tool并设置相关选项。
login的设置注意要取消掉“Capture Output”因为要在下面的弹出窗口中输入登录的密码。
我们可以在“Output Window”窗口看到以上工具执行的结果:
以上是抛砖引玉,希望能对大家有所帮助,其实在UltraEdit/Emedit等中也可以使用外部工具设置CVS的使用。
另外,需要注意的几点:
1。首先您所编辑的文件是处于CVS控制下的文件,即还是需要使用WinCVS来Checkout你的module(用cvs命令行也可),在Editplus中也可以设置User Tools进行checkout,但是并不常用也不方便。
2。向CVS添加文件和从CVS删除文件也是可以放到User Tools中的,这个大家可以自己试着配置一下。
您正在看的文章来自番禺论坛 http://bbs.pyyrf.com/,原文地址:http://bbs.pyyrf.com/thread-16024-1-1.htmlrn原文来自:http://www.sb1987.cn/post/360/
pageEncoding是jsp文件本身的编码
contentType的charset是指服务器发送给客户端时的内容编码
JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。
第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java),如果pageEncoding设定错了,或没有设定,出来的就是中文乱码。
第二阶段是由JAVAC的JAVA源码至java byteCode的编译,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。
JAVAC用UTF-8的encoding读取java源码,编译成UTF-8 encoding的二进制码(即.class),这是JVM对常数字串在二进制码(java encoding)内表达的规范。
第三阶段是Tomcat(或其的application container)载入和执行阶段二的来的JAVA二进制码,输出的结果,也就是在客户端见到的,这时隐藏在阶段一和阶段二的参数contentType就发挥了功效
contentType的設定.
pageEncoding 和contentType的预设都是 ISO8859-1. 而随便设定了其中一个, 另一个就跟着一样了(TOMCAT4.1.27是如此). 但这不是绝对的, 这要看各自JSPC的处理方式. 而pageEncoding不等于contentType, 更有利亚洲区的文字 CJKV系JSP网页的开发和展示, (例pageEncoding=GB2312 不等于 contentType=utf-8)。其他的语言也对应不同的charset,比如日文的字符集是“iso-2022-jp ”,韩文的是“ks_c_5601”。Content-Type的Content还可以是:text/xml等文档类型;Charset选项:ISO-8859-1(英文)、BIG5、UTF-8、SHIFT-Jis、Euc、Koi8-2、us-ascii, x-mac-roman, iso-8859-2, x-mac-ce, iso-2022-jp, x-sjis, x-euc-jp,euc-kr, iso-2022-kr, gb2312, gb_2312-80, x-euc-tw,x-cns11643-1,x-cns11643-2等字符集;Content-Language的Content还可以是:EN、FR等语言代码。
ContentType属性指定了MIME类型和JSP页面回应时的字符编码方式。MIME类型的默认值是“text/html”; 字符编码方式的默认值是“ISO-8859-1”. MIME类型和字符编码方式由分号隔开
pageEncoding的内容只是用于jsp输出时的编码,不会作为header发出去的。
pageEncoding 是通知web server jsp的编码。
jsp文件不像.java,.java在被编译器读入的时候默认采用的是操作系统所设定的locale所对应的编码,比如中国大陆就是GBK,台湾就是BIG5或者MS950。而一般我们不管是在记事本还是在ue中写代码,如果没有经过特别转码的话,写出来的都是本地编码格式的内容。所以编译器采用的方法刚好可以让虚拟机得到正确的资料。
但是jsp文件不是这样,它没有这个默认转码过程,但是指定了pageEncoding就可以实现正确转码了。
举个例子:
<%@ page contentType="text/html;charset=utf-8" %>
大都会打印出乱码,因为输入的“你好”是gbk的,但是服务器是否正确抓到“你好”不得而知。
但是如果更改为
<%@ page contentType="text/html;charset=utf-8" pageEncoding="GBK"%>
这样就服务器一定会是正确抓到“你好”了。
2008年9月21日
tomcat中的context.xml元素详解小人物,大博客 Q'e ^ L0J*J4h
元素名
|
属性
|
解释
|
server
|
port
|
指定一个端口,这个端口负责监听关闭tomcat的请求
|
shutdown
|
指定向端口发送的命令字符串
|
service
|
name
|
指定service的名字
|
Connector(表示客户端和service之间的连接)
|
port
|
指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求
|
minProcessors
|
服务器启动时创建的处理请求的线程数
|
maxProcessors
|
最大可以创建的处理请求的线程数
|
enableLookups
|
如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
|
redirectPort
|
指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
|
acceptCount
|
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
|
connectionTimeout
|
指定超时的时间数(以毫秒为单位)
|
Engine(表示指定service中的请求处理机,接收和处理来自Connector的请求)
|
defaultHost
|
指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的
|
Context(表示一个web应用程序,通常为WAR文件,关于WAR的具体信息见servlet规范)
|
docBase
|
应用程序的路径或者是WAR文件存放的路径
|
path
|
表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/****
|
reloadable
|
这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序
|
host(表示一个虚拟主机)
|
name
|
指定主机名
|
appBase
|
应用程序基本目录,即存放应用程序的目录
|
unpackWARs
|
如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
|
Logger(表示日志,调试和错误信息)
|
className
|
指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口
|
prefix
|
指定log文件的前缀
|
suffix
|
指定log文件的后缀
|
timestamp
|
如果为true,则log文件名中要加入时间,如下例:localhost_log.2001-10-04.txt
|
Realm(表示存放用户名,密码及role的数据库)
|
className
|
指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口
|
Valve(功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样)
|
className
|
指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息
|
directory
|
指定log文件存放的位置
|
pattern
|
有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。combined方式比common方式记录的值更多
|
Tomcat 5的数据源配置跟Tomcat 5.5的数据源配置有很多的差别,Tomcat 6的数据源配置跟Tomcat 5.5的配置基本上相同。
以前的Tomcat5的配置需要在server.xml文件当中配置或者在conf/Catalina/localhost下面相应的上下文配置文件做配置。这种配置方式不合理的地方在于,假如数据库做了更改,程序员需要手工去修改这些文件,不利于团队开发。
Tomcat 5.5跟Tomcat 6的配置显得更为简单,我们只需要在我们的WebRoot目录下,新建一个META-INF的目录(假如不存在),在该目录下创建一个context.xml文件,(或conf目录下的全局context.xml),并且在context.xml文件当添加以下的配置信息(要根据自己的情况稍加修改):
程序代码
<Context>
<Resource name="jdbc/tfms" auth="Container" type="javax.sql.DataSource"
maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"
username="sa" password="password" driverClassName="net.sourceforge.jtds.jdbc.Driver"
url="jdbc:jtds:sqlserver://localhost:1433/TransfusionMngDB;tds=8.0;lastupdatecount=true"/>
</Context>
其中:
name 表示指定的jndi名称
auth 表示认证方式,一般为Container
type 表示数据源床型,使用标准的javax.sql.DataSource
maxActive 表示连接池当中最大的数据库连接
maxIdle 表示最大的空闲连接数
maxWait 当池的数据库连接已经被占用的时候,最大等待时间
logAbandoned 表示被丢弃的数据库连接是否做记录,以便跟踪
username 表示数据库用户名
password 表示数据库用户的密码
driverClassName 表示JDBC DRIVER
url 表示数据库URL地址
在以往的tomcat当中还需要在web.xml指定相应的resource,在tomcat 5.5以后的版本不写也可以,但建议还是配置。
程序代码
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/tfms</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
配置完之后,还需要将JDBC DRIVER存放在%TOMCAT_HOME%/lib里面,这是必须的,不然,tomcat没有办法找到driver
之后重新启动tomcat
www.apache.com 发现新版本6.18 download core→zip
bin目录下 startup.bat ctatlina.bat 中添加 JAVA_HOME/JRE_HOME CATALINA_HOME/TOMCAT_HOME
Windows Service Installer方式则安装时自动添加
现在喜欢在windows或linux中都不添加任何系统变量除java_home 因为每次配置到最后全乱成一团
关于JVM和tomcat的内存问题
tomcat6.0只须设置:JAVA_OPS tomcat6.0之前设置:CATALINA_OPTS/TOMCAT_OPTS
如 SET CATALINA_OPTS= -Xms64m -Xmx512m;
ms是JVM初始化堆的大小,mx是JVM堆的最大值,一般说来,你应该使用物理内存的80% 作为堆大小。.
引用:
有以下几种方法可以选用:
第一种方法:
Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:
JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'
需要把这个两个参数值调大。例如:
JAVA_OPTS='-Xms256m -Xmx512m'
表示初始化内存为256MB,可以使用的最大内存为512MB。
第二种方法: 环境变量中设 变量名:JAVA_OPTS 变量值:-Xms512m -Xmx512m
第三种方法:前两种方法针对的是bin目录下有catalina.bat的情况(比如直接解压的Tomcat等),但是有些安装版的Tomcat下没有catalina.bat,这个时候可以采用如下方法,当然这个方法也是最通用的方法:打开tomcatHome/\bin/\tomcat5w.exe,点击Java选项卡,然后将会发现其中有这么两项:Initial memory pool和Maximum memory pool.Initial memory pool这个就是初始化设置的内存的大小。Maximum memory pool这个是最大内存的大小
也可在【tomcat配置窗口】-【Java标签】-【Java Options】,输入JVM优化参数:
-Xms512M
-Xmx512M
-Xverify:none
-XX:PermSize=128M
-XX:MaxPermSize=256m
-XX:MaxNewSize=256m
-XX:+UseAdaptiveSizePolicy
-XX:+UseParallelGC
-XX:+UseParallelOldGC
-XX:NewSize=200m
-Xmn200m
注意 一行一句配置 前后都不能有空格
连接器优化 禁止和允许列目录下的文件 禁止和允许主机或IP地址访问
设置完了就按确定然后再重启TOMCAT你就会发现tomcat中jvm可用的内存改变了
2008年9月9日
当struts2 theme为ajax时 使用UI标签总是自动添加<tr> <td>
可以在根目录,建立template文件夹,将struts2-core-xx.jar下的template文件夹解压其中
在templaate文件夹下的 ajax 下建立 text.flt
内容如下
<#--
this is controlheader-core.ftl
Only show message if errors are available.
This will be done if ActionSupport is used.
-->
<#assign hasFieldErrors = parameters.name?exists && fieldErrors?exists && fieldErrors[parameters.name]?exists/>
<#if hasFieldErrors>
<#list fieldErrors[parameters.name] as error>
<tr errorFor="${parameters.id}">
<#if parameters.labelposition?default("") == 'top'>
<td align="left" valign="top" colspan="2"><#rt/>
<#else>
<td align="center" valign="top" colspan="2"><#rt/>
</#if>
<span class="errorMessage">${error?html}</span><#t/>
</td><#lt/>
</tr>
</#list>
</#if>
<#--
if the label position is top,
then give the label it's own row in the table
<tr>
<#if parameters.labelposition?default("") == 'top'>
<td align="left" valign="top" colspan="2"><#rt/>
<#else>
<td class="tdLabel"><#rt/>
</#if>
<#if parameters.label?exists>
<label <#t/>
<#if parameters.id?exists>
for="${parameters.id?html}" <#t/>
</#if>
<#if hasFieldErrors>
class="errorLabel"<#t/>
<#else>
class="label"<#t/>
</#if>
><#t/>
<#if parameters.required?default(false) && parameters.requiredposition?default("right") != 'right'>
<span class="required">*</span><#t/>
</#if>
${parameters.label?html}<#t/>
<#if parameters.required?default(false) && parameters.requiredposition?default("right") == 'right'>
<span class="required">*</span><#t/>
</#if>
:<#t/>
<#include "/${parameters.templateDir}/xhtml/tooltip.ftl" />
</label><#t/>
</#if>
</td><#lt/>
add the extra row
<#if parameters.labelposition?default("") == 'top'>
</tr>
<tr>
</#if>
-->
<#if parameters.form?exists && parameters.form.validate?default(false) == true>
<#-- can't mutate the data model in freemarker -->
<#if parameters.onblur?exists>
${tag.addParameter('onblur', "validate(this);${parameters.onblur}")}
<#else>
${tag.addParameter('onblur', "validate(this);")}
</#if>
</#if>
<#--
<#include "/${parameters.templateDir}/${themeProperties.parent}/controlheader.ftl" />
-->
<#include "/${parameters.templateDir}/simple/text.ftl" />
<#--
<#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
-->
2008年8月19日
1、Navicat
Navicat是一个强大的MySQL数据库管理和开发工具。Navicat导航为专业开发者提供了一套强大的足够尖端的工具,但它对于新用户仍然是易于学习。Navicat,使用了极好的图形用户界面(GUI),可以让你用一种安全和更为容易的方式快速和容易地创建、组织、存取和共享信息。
用户可完全控制 MySQL 数据库和显示不同的管理资料,包括一个多功能的图形化管理用户和访问权限的管理工具,方便将数据从一个数据库移转到另一个数据库中(Local to Remote、Remote to Remote、Remote to Local),进行档案备份。
下载:
http://www.navicat.com.cn/
2、Mysql Front
一款小巧的管理Mysql的应用程序. 主要特性包括多文档界面, 语法突出, 拖拽方式的数据库和表格, 可编辑/可增加/删除的域, 可编辑/可插入/删除的记录, 可显示的成员, 可执行的SQL 脚本, 提供与外程序接口, 保存数据到CSV文件等。之前用过,好像已经商业化了。
下载:
http://www.mysqlfront.de/download.html
3、SQLyog
一个易于使用的、快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库,而且它本身是完全免费的。
下载:
http://www.webyog.com/
4、EMS MySQL Manager Lite
图形界面的EMS MySQL Manager给您更方便的管理。
下载:
http://www.ems-hitech.com/
5、Mysql Studio
MySQL是一套稳定、小而美的数据库系统,但是它的管理界面却较为薄弱。MySQL Studio是一套图形化界面的MySQL管理与监视系统,方便的浏览与管理数据库、数据表与资料、权限管理、备份还原、资料导入导出、Agent计划任务等等,让你的MySQL变得更完善。
下载:
http://www.mysqlstudio.com/
6、 MySQL Maestro
是一个管理MYSQL数据库的图形化工具。
下载:
http://www.sqlmaestro.com/