mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢?
其实打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上如下代码:
log-slow-queries=/var/lib/mysql/slowquery.log long_query_time=2
注:
log-slow-queries 设置把日志写在那里,为空的时候,系统会给慢查询日志赋予主机名,并被附加slow.log. /var/lib/mysql/slowquery.log为日志存放的文件的位置,一般这个目录要有mysql的运行帐号的可写权限,一般都将这个目录设置为mysql的数据存放目录
long_query_time=2中的2表示查询超过两秒才记录.
如果设置了参数log-long-format,那么所有没有使用索引的查询也将被记录。在文件my.cnf或my.ini中加入下面这一行可以记录这些查询
这是一个有用的日志。它对于性能的影响不大(假设所有查询都很快),并且强调了那些最需要注意的查询(丢失了索引或索引没有得到最佳应用)
# Time: 070927 8:08:52
# User@Host: root[root] @ [192.168.0.20]
# Query_time: 372 Lock_time: 136 Rows_sent: 152 Rows_examined: 263630
select id, name from manager where id in (66,10135);
这是慢查询日志中的一条,用了372秒,锁了136秒,返回152行,一共查了263630行
如果日志内容很多,用眼睛一条一条去看会累死,mysql自带了分析的工具,使用方法如下:
命令行下,进入mysql/bin目录,输入mysqldumpslow –help或–help可以看到这个工具的参数,主要有
Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]
Parse and summarize the MySQL slow query log. Options are
–verbose verbose
–debug debug
–help write this text to standard output
-v verbose
-d debug
-s ORDER what to sort by (t, at, l, al, r, ar etc), ‘at’ is default
-r reverse the sort order (largest last instead of first)
-t NUM just show the top n queries
-a don’t abstract all numbers to N and strings to ‘S’
-n NUM abstract numbers with at least n digits within names
-g PATTERN grep: only consider stmts that include this string
-h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard),
default is ‘*’, i.e. match all
-i NAME name of server instance (if using mysql.server startup scrīpt)
-l don’t subtract lock time from total time
-s,是order的顺序,说明写的不够详细,俺用下来,包括看了代码,主要有
c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序,前面加了a的时倒叙
-t,是top n的意思,即为返回前面多少条的数据
-g,后边可以写一个正则匹配模式,大小写不敏感的
mysqldumpslow -s c -t 20 host-slow.log
mysqldumpslow -s r -t 20 host-slow.log
上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。
mysqldumpslow -t 10 -s t -g “left join” host-slow.log
这个是按照时间返回前10条里面含有左连接的sql语句。
转自: http://hi.baidu.com/34pc/blog/item/cc19750132dde3067aec2cbf.html
一般,冲突的地方注要有两个,一个是 smarty 的定界符 {} 与 js 语法的{}冲突 ,第二个是 jquery 的 $ 与smarty 变量的 $冲突 。
第一个问题 可以把 smarty 的定界符设成 <{ }>
$tpl->left_delimiter = '<{'; $tpl->right_delimiter = '}>';
第二个问题可以用 smarty 的 literal 处理,可以把 JS代码 包含在 {literal}{/literal} 之间就可以了。
<{literal}> $ ( function () { alert ('北京php培训')} ); <{/literal}>
1、首先打开站点根目录
然后打开根目录下的 wp-config.php 文件,在里面添加一行代码
define('ALLOW_UNFILTERED_UPLOADS', true);
2、打开wp-includes/functions.php,查找
'zip' => 'application/zip' 或者zip
3、如果你想上传扩展名为RAR的文件,就增加以下这行代码:
在'zip' => 'application/zip',
下添加
'rar' => 'application/rar',
把文件都上传即可。
然后再编辑文章的时候,点击“添加媒体”,把文件上传即可,
看到下面的链接吧,把链接复制即可
在命令行下 运行 reg add “HKEY_CLASSES_ROOT\*\shell\EditPlus\command” /ve /t REG_SZ /d “\”D:\Program Files\EditPlus 3.10chs\editplus.exe\” \”%1\”" /f 就可以 了,注意要把 对应 editplus 的路径改对啊。
古有猪八戒,今有人八戒:
1、戒色 万恶淫为首
2、戒贪 不付出的一味索求,就是贪;付出更多的努力,自然有更多的回报,此不为贪
3、戒食 不能吃太多,戒烟,戒酒
4、戒骄 人在得意时,不能太骄傲
5、戒躁 心平气和,不要轻易动怒
6、戒懒 玩物丧志;不勤奋,就没有未来
7、戒拖 先做重要事情,不要有拖的习惯
8、戒奢 有钱无钱都不要太奢侈;朴素、简单的生活,你会发现也很美
可能还有其他的戒,大家可以补充。
以上八戒,是我们在遵守法律之外,对自己的一些要求。
转自: http://www.kuaiyigang.org/article-280.html
这篇文章的主要目的是将使用 tar 实现差异备份的方法作一介绍,因此有必要在此之前将 备份的概念先讲清楚。
备份主要的目的是在系统发生故障的时候(如硬盘翘掉,文件系统崩溃)对用户最宝贵的部分(数据)不至于丢失。备份可以分为全备份(所有数据都备份),增量备份(备份与上一个备份的差异部分),差异备份(备份与上一个全备份之间的差异部分)。增量备份针对上一次备份,差异备份针对全备份。对于所需的恢复步骤而言,基于增量备份策略的恢复需要恢复全备份,第一个增量备份,…,最新的增量备份;基于差异备份策略的恢复需要恢复 全备份,最新的差异备份。恢复起来差异备份所需的步骤简单一些。
一般的情况下,人们经常为关键的任务翘掉后恢复的时间定义一个很小的窗口。正是由于有这种约束,通常用于恢复的时间都不会太长,所以差异备份可能来的更实际一些。
tar 是 Unix/Linux 系统上常用的系统归档命令,它也支持差异备份的策略。 tar 的参数 -g 可以用于此木器,例如:
$ tar -cz -g home_snapshot -f home_full.tgz /home
$ tar -cz -g home_snapshot -f home_mon.tgz /home
以后每次用这种形式 ‘-g snapshot’ 就可以创建针对全备份的差异备份了:-)。
为了增量备份利用 tar 的 -g参数
tar -cf backup_`date +%F`.tar -g backup_`date +%F`.snapshot /path/source/
首次执行时,会将source这目录(即整个source裡的资料)作成tarball档,
并在daily-snapshot-file档案裡记录时间点,
第二次执行时,根据daily-snapshot-file裡的时间点,与在现执行时的时间点,
检查是否有变动的资料,有更新便只把更新档案的作成tarball档,并更新daily-snapshot-file裡的时间点,
无更新时也会有tarball档产生,但裡面无资料,而daily-snapshot-file的时间点也会作变动。
假如source裡还有目录的话,它是同理的。
如果持续作这动作,可能要考虑写个script来针对snapshot这档作置换一下,
因为每执行一次,照著`date +%F`的话,时间点会从新计算,
范例:
cp backup_20051221.snapshot backup_20051221.snapshot.old
tar -cf backup_20051222.tar -g backup_20051221.snapshot /path/source
mv backup_20051221.snapshot backup_20051222.snapshot
使用 find 来作辅助
找出昨天到现在时间裡的档案作成 tarball
tar -cf data.tar `find /path/* -mtime -1 ! -type d -print`
-mtime -1
-1表示前一天。
! -type d
或者是
-type f
如果没加这个参数,它会把/path/底下的目录的裡的全部资料(包含旧的)都备出来
-print
表示标准输出,每个档有路径且一行一行列出。但路径要看find指令后面接什麽路径,
如果为./path,输出的路径就成./xxx/data.txt,如果为/path/*,输出的路径就成/path/data.txt,
并注意 find后面接的路径,如果为/path/,则交给tar后,产生的档案会与为/path/*产生的不同,
而/path/*的才是正确的,/path/所产生的tarball会多出一倍的容量。
比较两种方式,当搭配了crontab时,
使用 find的方式,需要去计算在crontab裡排程的时间与-mtime参数的时间之间的差距,
假如排程每七日执行一次,而-mtime就要设定为-8。
使用 tar -g的方式,就不用去管时间差距,到时排程一执行,它会自动去读daily-snapshot-file裡与现在的时间差。
其它范例
比这时间还新的档案做 tar,不过用这方法不准,会参杂其它日期的
tar -N “20050909″ -cf data.tar /path/
依date参数%Y/%m/%d产生出来的现在时间,的四天前做tar
如果现在时间为2005-12-04,要tar作2005-10-22天后的日期,”4 days ago”改为”43 days ago”
tar -jcvf /path/aletw.bz2 –newer-mtime `date -d “4 days ago” +%Y/%m/%d` /path
2008/01/22 单纯使用 tar 依日期作差异的话它会把空目录也 tar 进来,所以还是搭配 find 吧
find 目录 -mtime -1 ! -type d -print > include.txt
tar zcvf xxx.tar.gz -T include.txt
Mysql的SQL语句执行时间
查看 MySQL 語法 詳細執行時間 與 CPU/記憶體使用量: MySQL Query Profiler
MySQL 的 SQL 語法調整主要都是使用 EXPLAIN , 但是這個並沒辦法知道詳細的 Ram(Memory)/CPU 等使用量.
於 MySQL 5.0.37 以上開始支援 MySQL Query Profiler, 可以查詢到此 SQL 會執行多少時間, 並看出 CPU/Memory 使用量, 執行過程中 System lock, Table lock 花多少時間等等.
MySQL Query Profile 詳細介紹可見: Using the New MySQL Query Profiler (2007.04.05 發表)
效能分析主要分下述三種(轉載自上篇):
* Bottleneck analysis – focuses on answering the questions: What is my database server waiting on; what is a user connection waiting on; what is a piece of SQL code waiting on?
* Workload analysis – examines the server and who is logged on to determine the resource usage and activity of each.
* Ratio-based analysis – utilizes a number of rule-of-thumb ratios to gauge performance of a database, user connection, or piece of code.
MySQL Query Profile 使用方法
啟動
* mysql> set profiling=1; # 此命令於 MySQL 會於 information_schema 的 database 建立一個 PROFILING 的 table 來紀錄.
SQL profiles show
* mysql> show profiles; # 從啟動之後所有語法及使用時間, 含錯誤語法都會紀錄.
* ex: (root@localhost) [test]> show profiles; # 注意 Query_ID, 下面執行時間統計等, 都是依 Query_ID 在紀錄
+———-+————+—————————+
| Query_ID | Duration | Query |
+———-+————+—————————+
| 1 | 0.00090400 | show profile for query 1 |
| 2 | 0.00008700 | select * from users |
| 3 | 0.00183800 | show tables |
| 4 | 0.00027600 | mysql> show profiles |
+———-+————+—————————+
查詢所有花費時間加總
* mysql> select sum(duration) from information_schema.profiling where query_id=1; # Query ID = 1
+—————+
| sum(duration) |
+—————+
| 0.000447 |
+—————+
查詢各執行階段花費多少時間
* mysql> show profile for query 1; # Query ID = 1
+——————–+————+
| Status | Duration |
+——————–+————+
| (initialization) | 0.00006300 |
| Opening tables | 0.00001400 |
| System lock | 0.00000600 |
| Table lock | 0.00001000 |
| init | 0.00002200 |
| optimizing | 0.00001100 |
| statistics | 0.00009300 |
| preparing | 0.00001700 |
| executing | 0.00000700 |
| Sending data | 0.00016800 |
| end | 0.00000700 |
| query end | 0.00000500 |
| freeing items | 0.00001200 |
| closing tables | 0.00000800 |
| logging slow query | 0.00000400 |
+——————–+————+
查詢各執行階段花費的各種資源列表
* mysql> show profile cpu for query 1; # Query ID = 1
+——————————–+———-+———-+————+
| Status | Duration | CPU_user | CPU_system |
+——————————–+———-+———-+————+
| (initialization) | 0.000007 | 0 | 0 |
| checking query cache for query | 0.000071 | 0 | 0 |
| Opening tables | 0.000024 | 0 | 0 |
| System lock | 0.000014 | 0 | 0 |
| Table lock | 0.000055 | 0.001 | 0 |
| init | 0.000036 | 0 | 0 |
| optimizing | 0.000013 | 0 | 0 |
| statistics | 0.000021 | 0 | 0 |
| preparing | 0.00002 | 0 | 0 |
| executing | 0.00001 | 0 | 0 |
| Sending data | 0.015072 | 0.011998 | 0 |
| end | 0.000021 | 0 | 0 |
| query end | 0.000011 | 0 | 0 |
| storing result in query cache | 0.00001 | 0 | 0 |
| freeing items | 0.000018 | 0 | 0 |
| closing tables | 0.000019 | 0 | 0 |
| logging slow query | 0.000009 | 0 | 0 |
+——————————–+———-+———-+————+
* mysql> show profile IPC for query 1;
+——————————–+———-+—————+——————-+
| Status | Duration | Messages_sent | Messages_received |
+——————————–+———-+—————+——————-+
| (initialization) | 0.000007 | 0 | 0 |
| checking query cache for query | 0.000071 | 0 | 0 |
| Opening tables | 0.000024 | 0 | 0 |
| System lock | 0.000014 | 0 | 0 |
| Table lock | 0.000055 | 0 | 0 |
| init | 0.000036 | 0 | 0 |
| optimizing | 0.000013 | 0 | 0 |
| statistics | 0.000021 | 0 | 0 |
| preparing | 0.00002 | 0 | 0 |
| executing | 0.00001 | 0 | 0 |
| Sending data | 0.015072 | 0 | 0 |
| end | 0.000021 | 0 | 0 |
| query end | 0.000011 | 0 | 0 |
| storing result in query cache | 0.00001 | 0 | 0 |
| freeing items | 0.000018 | 0 | 0 |
| closing tables | 0.000019 | 0 | 0 |
| logging slow query | 0.000009 | 0 | 0 |
+——————————–+———-+—————+——————-+
其它屬性列表
* ALL – displays all information
* BLOCK IO – displays counts for block input and output operations
* CONTEXT SWITCHES – displays counts for voluntary and involuntary context switches
* IPC – displays counts for messages sent and received
* MEMORY – is not currently implemented
* PAGE FAULTS – displays counts for major and minor page faults
* SOURCE – displays the names of functions from the source code, together with the name and line number of the file in which the function occurs
* SWAPS – displays swap counts
設定 Profiling 存的 Size
* mysql> show variables where variable_name=’profiling_history_size’; # 預設是 15筆
關閉
* mysql> set profiling=0;
png透明 AlphaImageLoader
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader( enabled=bEnabled,sizingMethod=sSize,src=sURL)
enabled:可选项。布尔值(Boolean)。设置或检索滤镜是否激活。true:默认值。滤镜激活。false:滤镜被禁止。
sizingMethod:可选项。字符串(String)。设置或检索滤镜作用的对象的图片在对象容器边界内的显示方式。crop:剪切图片以适应对象尺寸。image:默认值。增大或减小对象的尺寸边界以适应图片的尺寸。scale:缩放图片以适应对象的尺寸边界。
src:必选项。字符串(String)。使用绝对或相对 url 地址指定背景图像。假如忽略此参数,滤镜将不会作用。
firefox不能对innerText支持
firefox支持innerHTML但却不支持innerText,它支持textContent来实现innerText,不过默认把多余的空格也保留了。如果不用textContent,如果字符串里面不包含HTML代码也可以用innerHTML代替。
禁止选取网页内容
在IE中一般用js:
obj.onselectstart=function(){return false;}
而firefox用CSS:-moz-user-select:none
滤镜的支持(例:透明滤镜)
IE:filter:alpha(opacity=10);
firefox:-moz-opacity:.10;
捕获事件
IE:
obj.setCapture() 、obj.releaseCapture()
Firefox:
document.addEventListener(”mousemove”,mousemovefunction,true); document.removeEventListener(”mousemove”,mousemovefunction,true);
获取鼠标位置
IE:event.clientX、event.clientY
firefox:需要事件函数传递事件对象
obj.onmousemove=function(ev){
X= ev.pageX;Y=ev.pageY;
}
DIV等元素的边界问题
比如:设置一个div的CSS::{width:100px;height:100px;border:#000000 1px solid;}
IE中:div的宽度(包括边框宽度):100px,div的高度(包括边框宽度):100px;
而firefox:div的宽度(包括边框宽度):102px,div的高度(包括边框宽度):102px;
判断浏览器类型
var isIE=document.all ? true : false;
我写了一个变量,如果支持document.all语法那么isIE=true,否则isIE=false
在不同浏览器下的CSS处理
一般可以用!important来优先使用css语句(仅firefox支持)
比如:{border-width:0px!important;border-width:1px;}
在firefox下这个元素是没有边框的,在IE下边框宽度是1px
document.formName.item(”itemName”) 问题
问题说明:IE下,可以使用 document.formName.item(”itemName”) 或 document.formName.elements ["elementName"];Firefox下,只能使用document.formName.elements["elementName"]。
解决方法:统一使用
document.formName.elements["elementName"]。
集合类对象问题
问题说明:IE下,可以使用()或[]获取集合类对象;Firefox下,只能使用[]获取集合类对象。
解决方法:统一使用 [] 获取集合类对象。
自定义属性问题
问题说明:IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用 getAttribute() 获取自定义属性;Firefox下,只能使用 getAttribute() 获取自定义属性。
解决方法:统一通过 getAttribute() 获取自定义属性。
eval(”idName”)问题
问题说明:IE下,可以使用 eval(”idName”) 或 getElementById(”idName”) 来取得 id 为 idName 的HTML对象;Firefox下,只能使用 getElementById(”idName”) 来取得 id 为 idName 的HTML对象。
解决方法:统一用 getElementById(”idName”) 来取得 id 为 idName 的HTML对象。
变量名与某HTML对象ID相同的问题
问题说明:IE下,HTML对象的ID可以作为 document 的下属对象变量名直接使用,Firefox下则不能;Firefox下,可以使用与HTML对象ID相同的变量名,IE下则不能。
解决方法:使用 document.getElementById(”idName”) 代替 document.idName。最好不要取HTML对象ID相同的变量名,以减少错误;在声明变量时,一律加上var关键字,以避免歧义。
const问题
问题说明:Firefox下,可以使用const关键字或var关键字来定义常量;IE下,只能使用var关键字来定义常量。
解决方法:统一使用var关键字来定义常量。
input.type属性问题
问题说明:IE下 input.type 属性为只读;但是Firefox下 input.type 属性为读写。
解决办法:不修改 input.type 属性。如果必须要修改,可以先隐藏原来的input,然后在同样的位置再插入一个新的input元素。
window.event问题
问题说明:window.event 只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用。
解决方法:在事件发生的函数上加上event参数,在函数体内(假设形参为evt)使用 var myEvent = evt?evt:(window.event?window.event:null)
示例:
<input type=”button” onclick=”doSomething(event)”/> <script language=”javascript”> function doSomething(evt) { var myEvent = evt ? evt: (window.event ? window.event : null) … }
event.x与event.y问题
问题说明:IE下,even对象有x、y属性,但是没有pageX、pageY属性;Firefox下,even对象有pageX、pageY属性,但是没有x、y属性。
解决方法:var myX = event.x ? event.x : event.pageX;var myY = event.y ? event.y:event.pageY;
如果考虑第8条问题,就改用myEvent代替event即可。
event.srcElement问题
问题说明:IE下,even对象有srcElement属性,但是没有target属性;Firefox下,even对象有target属性,但是没有srcElement属性。
解决方法:使用srcObj = event.srcElement ? event.srcElement : event.target;
如果考虑第8条问题,就改用myEvent代替event即可。
window.location.href问题
问题说明:IE或者Firefox2.0.x下,可以使用window.location或window.location.href;Firefox1.5.x下,只能使用window.location。
解决方法:使用 window.location 来代替 window.location.href。当然也可以考虑使用 location.replace()方法。
模态和非模态窗口问题
问题说明:IE下,可以通过showModalDialog和showModelessDialog打开模态和非模态窗口;Firefox下则不能。
解决方法:直接使用 window.open(pageURL,name,parameters) 方式打开新窗口。
如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用window.opener来访问父窗口。如果需要父窗口控制子窗口的话,使用var subWindow = window.open(pageURL,name,parameters);来获得新开的窗口对象。
frame和iframe问题
以下面的frame为例:
(1)访问frame对象
IE:使用window.frameId或者window.frameName来访问这个frame对象;
Firefox:使用window.frameName来访问这个frame对象;
解决方法:统一使用 window.document.getElementById(”frameId”) 来访问这个frame对象;
(2)切换frame内容
在IE和Firefox中都可以使用window.document.getElementById(”frameId”).src = “xxx.html”或window.frameName.location = “xxx.html”来切换frame的内容;
如果需要将frame中的参数传回父窗口,可以在frame中使用parent关键字来访问父窗口。
body载入问题
问题说明:Firefox的body对象在body标签没有被浏览器完全读入之前就存在;而IE的body对象则必须在body标签被浏览器完全读入之后才存在。
[注] 这个问题尚未实际验证,待验证后再来修改。
[注] 经验证,IE6、Opera9以及FireFox2中不存在上述问题,单纯的JS脚本可以访问在脚本之前已经载入的所有对象和元素,即使这个元素还没有载入完成。
事件委托方法
问题说明:IE下,使用 document.body.onload = inject;其中function inject()在这之前已被实现;在Firefox下,使用 document.body.onload = inject();
解决方法:统一使用 document.body.onload=new Function(”inject()”);或者 document.body.onload = function(){/* 这里是代码 */}
[注意] Function和function的区别
访问的父元素的区别
问题说明:在IE下,使用 obj.parentElement 或 obj.parentNode 访问obj的父结点;在firefox下,使用 obj.parentNode 访问obj的父结点。
解决方法:因为firefox与IE都支持DOM,因此统一使用obj.parentNode 来访问obj的父结点。
cursor:hand VS cursor:pointer
问题说明:firefox不支持hand,但ie支持pointer ,两者都是手形指示。
解决方法:统一使用pointer。
innerText的问题
问题说明:innerText在IE中能正常工作,但是innerText在FireFox中却不行。
解决方法:在非IE浏览器中使用textContent代替innerText。
示例:
if(navigator.appName.indexOf(”Explorer”) >-1){ document.getElementById(”element”).innerText = “my text”; }else{ document.getElementById(”element”).textContent = “my text”; }
[注] innerHTML 同时被ie、firefox等浏览器支持,其他的,如outerHTML等只被ie支持,最好不用。
对象宽高赋值问题
问题说明:FireFox中类似 obj.style.height = imgObj.height 的语句无效。
解决方法:统一使用 obj.style.height = imgObj.height + “px”;
Table操作问题
问题说明:ie、firefox以及其它浏览器对于 table 标签的操作都各不相同,在ie中不允许对table和tr的innerHTML赋值,使用js增加一个tr时,使用appendChild方法也不管用。
解决方法:
//向table追加一个空行: var row = otable.insertRow(-1); var cell = document.createElement(”td”); cell.innerHTML = “”; cell.className = “XXXX”; row.appendChild(cell);
[注] 由于俺很少使用JS直接操作表格,这个问题没有遇见过。建议使用JS框架集来操作table,如JQuery。
ul和ol列表缩进问题
消除ul、ol等列表的缩进时,样式应写成:list-style:none;margin:0px;padding:0px;
其中margin属性对IE有效,padding属性对FireFox有效。← 此句表述有误,详细见↓
[注] 这个问题尚未实际验证,待验证后再来修改。
[注] 经验证,在IE中,设置margin:0px可以去除列表的上下左右缩进、空白以及列表编号或圆点,设置padding对样式没有影响;在Firefox 中,设置margin:0px仅仅可以去除上下的空白,设置padding:0px后仅仅可以去掉左右缩进,还必须设置list-style:none才能去除列表编号或圆点。也就是说,在IE中仅仅设置margin:0px即可达到最终效果,而在Firefox中必须同时设置margin:0px、 padding:0px以及list-style:none三项才能达到最终效果。
CSS透明问题
IE:
filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。
FF:opacity:0.6。
[注] 最好两个都写,并将opacity属性放在下面。
CSS圆角问题
IE:ie7以下版本不支持圆角。
FF:-moz- border-radius:4px,或者-moz-border-radius-topleft:4px;-moz-border- radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz-border- radius- bottomright:4px;。
[注] 圆角问题是CSS中的经典问题,建议使用JQuery框架集来设置圆角,让这些复杂的问题留给别人去想吧。
斯巴达克斯:竞技场之神(Spartacus:Gods of the Arena)05集下载地址
竞技场之神05:普清
thunder://QUFmdHA6Ly8zZTozZUBkNi4zZWR5eS5jb206NjI0L6G+M0W/tL+0d3d3LjNla2suY29tob/LubDNtO+/y8u5o7rW7snxvrq8vLOhMDUucm12Ylpa
竞技场之神05:1024高清版
thunder://QUFmdHA6Ly8zZTozZUBkNi4zZWR5eS5jb206NjI0L6G+M0W/tL+0d3d3LjNla2suY29tob/LubDNtO+/y8u5o7rW7snxvrq8vLOhWzEwMjR4NTc2uN/H5bDmXTA1LnJtdmJaWg==
使用新版DedeCms5.6 织梦程序可以在安装程序的时候选取安装体验数据来填充网站内容看到整体效果,但点击初始化数据体验包旁边的远程获取并不能顺利获得数据包。
织梦官方对这个问题给予了答复:
很多人会遇到无法获取体验数据的问题,这里简单的说明下:因为体验包比较大,所以织梦官方可能没有直接集成到系统里面,所以用户需要安装时候自己选择下载程序。
这里我们需要注意的是,你的系统的data目录必须具备可写的权限,并且需要服务器满足官方发布的环境配置需求。
当然如果无法自动获取的,可以采用以下的办法:
如果是gbk则下载
http://www.dedecms.com/demodata/dedev56demo.zip
UTF-8下载
http://www.dedecms.com/demodata/dedev56demoutf8.zip
下载完后解压,然后把里面的xml放到install目录中再安装既可。

