mysql 查看表的創(chuàng)建時(shí)間的語(yǔ)句
posted @ 2018-07-25 17:36 有機(jī)肥 閱讀(300) | 評(píng)論 (0) | 編輯 收藏
綠色
posted @ 2018-07-25 17:36 有機(jī)肥 閱讀(300) | 評(píng)論 (0) | 編輯 收藏
posted @ 2018-07-17 11:09 有機(jī)肥 閱讀(148) | 評(píng)論 (0) | 編輯 收藏
直接使用命令:
mysqldump -u root -p abc >abc.sql
然后回車(chē)輸入密碼就可以了;
mysqldump -u 數(shù)據(jù)庫(kù)鏈接用戶名 -p 目標(biāo)數(shù)據(jù)庫(kù) > 存儲(chǔ)的文件名
文件會(huì)導(dǎo)出到當(dāng)前目錄下
mysql -u 用戶名 -p 數(shù)據(jù)庫(kù)名 < 數(shù)據(jù)庫(kù)名.sql
mysql -u abc -p abc < abc.sql
注意sql文件必須在當(dāng)前目錄下,如果不在當(dāng)前目錄下需要在< 之后加上具體sql文件路徑
GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
posted @ 2018-06-25 22:45 有機(jī)肥 閱讀(162) | 評(píng)論 (0) | 編輯 收藏
posted @ 2018-06-08 11:04 有機(jī)肥 閱讀(164) | 評(píng)論 (0) | 編輯 收藏
posted @ 2017-10-30 16:47 有機(jī)肥 閱讀(139) | 評(píng)論 (0) | 編輯 收藏
桑葚采
摘
好去處
芳橋
1、綠大地果桑種植基地 13063669929
2、碧園春生態(tài)園 13771359607
3、張慕果園 13812203223
4、金沙灘蔬果園 13585035093
建議采摘路線:市區(qū)→東氿大道→百合大道→芳塍路往北(詳見(jiàn)地圖指示)
西渚
◆【1】甲有農(nóng)林生態(tài)園
地址:宜興市西渚鎮(zhèn)張戴公路白塔村部旁(近振元南路)
◆【2】白塔云芯林果專(zhuān)業(yè)合作社桑葚采摘園
地址:白塔村委入口斜對(duì)面張戴公路邊
◆【3】小杭采摘園
自駕線路: 宜興——橫山水庫(kù)
◆【4】白塔瓜果基地
自駕線路:導(dǎo)航即到
徐舍
◆ 蘇合農(nóng)產(chǎn)品銷(xiāo)售專(zhuān)業(yè)合作聯(lián)社
自駕線路:麥德龍——G104(行駛16.6公里)——徐舍鎮(zhèn)潘東村
湖?
◆【1】籬笆園農(nóng)家樂(lè)
地址:宜興市湖?鎮(zhèn)洑西村
◆【2】金沙灣農(nóng)莊
地址:宜興市湖?鎮(zhèn)東興村
posted @ 2017-10-30 16:45 有機(jī)肥 閱讀(137) | 評(píng)論 (0) | 編輯 收藏
![]() |
![]() |
![]() |
![]() |
![]() |
posted @ 2017-10-27 17:08 有機(jī)肥 閱讀(126) | 評(píng)論 (0) | 編輯 收藏
posted @ 2017-10-04 01:06 有機(jī)肥 閱讀(126) | 評(píng)論 (0) | 編輯 收藏
posted @ 2017-09-12 15:35 有機(jī)肥 閱讀(209) | 評(píng)論 (0) | 編輯 收藏
在Freemarker中,如果要判斷序列中是否包含某個(gè)指定的元素,可以使用freemarker的內(nèi)建函數(shù)seq_contains。
注:seq_contains這個(gè)內(nèi)建函數(shù)從FreeMarker 2.3.1 版本開(kāi)始可用。而在2.3 版本中不存在。
使用示例:
輸出結(jié)果:
附:seq_前綴在這個(gè)內(nèi)建函數(shù)中是需要的,用來(lái)和contains 區(qū)分開(kāi)。contains函數(shù)用來(lái)在字符串中查找子串(因?yàn)樽兞靠梢酝瑫r(shí)當(dāng)作字符串和序列)。
posted @ 2017-09-10 10:39 有機(jī)肥 閱讀(529) | 評(píng)論 (0) | 編輯 收藏
posted @ 2017-09-04 09:38 有機(jī)肥 閱讀(221) | 評(píng)論 (0) | 編輯 收藏
posted @ 2017-08-08 17:28 有機(jī)肥 閱讀(138) | 評(píng)論 (0) | 編輯 收藏
posted @ 2017-08-02 14:41 有機(jī)肥 閱讀(119) | 評(píng)論 (0) | 編輯 收藏
posted @ 2017-07-10 17:50 有機(jī)肥| 編輯 收藏
public
class
ClientFormLogin {
public
static
void
main(String[] args)
throws
Exception {
BasicCookieStore cookieStore =
new
BasicCookieStore();
CloseableHttpClient httpclient = HttpClients.custom()
.setDefaultCookieStore(cookieStore)
.build();
try
{
HttpGet httpget =
new
HttpGet(
"http://..."
);
CloseableHttpResponse response1 = httpclient.execute(httpget);
try
{
HttpEntity entity = response1.getEntity();
System.out.println(
"Login form get: "
+ response1.getStatusLine());
System.out.println(
"Initial set of cookies:"
);
List<Cookie> cookies = cookieStore.getCookies();
if
(cookies.isEmpty()) {
System.out.println(
"None"
);
}
else
{
for
(
int
i =
0
; i < cookies.size(); i++) {
System.out.println(
"- "
+ cookies.get(i).toString());
}
}
//輸出網(wǎng)頁(yè)源碼
String result = EntityUtils.toString(response1.getEntity(),
"utf-8"
);
System.out.println(result); EntityUtils.consume(entity);
}
finally
{
response1.close();
}
}
}
posted @ 2017-07-10 17:39 有機(jī)肥 閱讀(2075) | 評(píng)論 (0) | 編輯 收藏
posted @ 2017-07-10 17:27 有機(jī)肥| 編輯 收藏
yum update升級(jí)以后的系統(tǒng)版本為
[root@yl-web yl]# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core)
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm # rpm -ivh mysql-community-release-el7-5.noarch.rpm # yum install mysql-community-server
安裝成功后重啟mysql服務(wù)。
# service mysqld restart
初次安裝mysql,root賬戶沒(méi)有密碼。
[root@yl-web yl]# mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.6.26 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.01 sec) mysql>
設(shè)置密碼
mysql> set password for 'root'@'localhost' =password('password'); Query OK, 0 rows affected (0.00 sec) mysql>
不需要重啟數(shù)據(jù)庫(kù)即可生效。
mysql配置文件為/etc/my.cnf
最后加上編碼配置
[mysql] default-character-set =utf8
這里的字符編碼必須和/usr/share/mysql/charsets/Index.xml中一致。
把在所有數(shù)據(jù)庫(kù)的所有表的所有權(quán)限賦值給位于所有IP地址的root用戶。
mysql> grant all privileges on *.* to root@'%'identified by 'password';
如果是新用戶而不是root,則要先新建用戶
mysql>create user 'username'@'%' identified by 'password';
此時(shí)就可以進(jìn)行遠(yuǎn)程連接了。
posted @ 2017-03-01 10:20 有機(jī)肥 閱讀(164) | 評(píng)論 (0) | 編輯 收藏
linux zip命令
zip -r myfile.zip ./*
將當(dāng)前目錄下的所有文件和文件夾全部壓縮成myfile.zip文件,-r表示遞歸壓縮子目錄下所有文件.
2.unzip
unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解壓到 /home/sunny/
-o:不提示的情況下覆蓋文件;
-d:-d /home/sunny 指明將文件解壓縮到/home/sunny目錄下;
3.其他
zip -d myfile.zip smart.txt
刪除壓縮文件中smart.txt文件
zip -m myfile.zip ./rpm_info.txt
向壓縮文件中myfile.zip中添加rpm_info.txt文件
-------------------------------------------------------------------------------
要使用 zip 來(lái)壓縮文件,在 shell 提示下鍵入下面的命令:
zip -r filename.zip filesdir
在這個(gè)例子里,filename.zip 代表你創(chuàng)建的文件,filesdir 代表你想放置新 zip 文件的目錄。-r 選項(xiàng)指定你想遞歸地(recursively)包括所有包括在 filesdir 目錄中的文件。
要抽取 zip 文件的內(nèi)容,鍵入以下命令:
unzip filename.zip
你可以使用 zip 命令同時(shí)處理多個(gè)文件和目錄,方法是將它們逐一列出,并用空格間隔:
zip -r filename.zip file1 file2 file3 /usr/work/school
上面的命令把 file1、file2、 file3、以及 /usr/work/school 目錄的內(nèi)容(假設(shè)這個(gè)目錄存在)壓縮起來(lái),然后放入 filename.zip 文件中。
posted @ 2016-12-07 14:39 有機(jī)肥 閱讀(116) | 評(píng)論 (0) | 編輯 收藏
JSON(javascript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,采用完全獨(dú)立于語(yǔ)言的文本格式,是理想的數(shù)據(jù)交換格式。同時(shí),JSON是 JavaScript 原生格式,這意味著在 JavaScript 中處理 JSON數(shù)據(jù)不須要任何特殊的 API 或工具包。
via在JSON中,有兩種結(jié)構(gòu):對(duì)象和數(shù)組。原文來(lái)自:http://caibaojian.com/jquery-each-json.html
1.對(duì)象
一個(gè)對(duì)象以“{”開(kāi)始,“}”結(jié)束。每個(gè)“key”后跟一“:”,“‘key/value’ 對(duì)”之間運(yùn)用 “,”分隔。
packJson = {"name":"caibaojian.com", "password":"111"}
2.數(shù)組
packJson = [{"name":"caibaojian.com", "password":"111"}, {"name":"tony", "password":"111"}];
數(shù)組是值的有序集合。一個(gè)數(shù)組以“[”開(kāi)始,“]”結(jié)束。值之間運(yùn)用 “,”分隔。
在數(shù)據(jù)傳輸流程中,json是以文本,即字符串的形式傳遞的,而JS操作的是JSON對(duì)象,所以,JSON對(duì)象和JSON字符串之間的相互轉(zhuǎn)換是關(guān)鍵。例如:
JSON字符串:
var jsonStr = '{"name":"caibaojian", "password":"1111"}';
JSON對(duì)象:
var jsonObj = {"name":"caibaojian.com", "password":"1111"};
1、String轉(zhuǎn)換為Json對(duì)象
var jsonObj = eval('(' + jsonStr + ')');
2.Json對(duì)象轉(zhuǎn)換為String字符串
var jsonStr = jsonObj.toJSONString();
grep
<script type='text/javascript' src="/jquery.js"></script> <script type="text/javascript"> $().ready( function(){ var array = [1,2,3,4,5,6,7,8,9]; var filterarray = $.grep(array,function(value){ return value > 5;//篩選出大于5的 }); for(var i=0;i<filterarray.length;i++){ alert(filterarray[i]); } for (key in filterarray){ alert(filterarray[key]); } } ); </script>
each
<script type='text/javascript' src="/jquery.js"></script> <script type="text/javascript"> $().ready( function(){ var anObject = {one:1,two:2,three:3};//對(duì)json數(shù)組each $.each(anObject,function(name,value) { alert(name); alert(value); }); var anArray = ['one','two','three']; $.each(anArray,function(n,value){ alert(n); alert(value); } ); } ); </script>
inArray
<script type='text/javascript' src="/jquery.js"></script> <script type="text/javascript"> $().ready( function(){ var anArray = ['one','two','three']; var index = $.inArray('two',anArray); alert(index);//返回該值在數(shù)組中的鍵值,返回1 alert(anArray[index]);//value is two } ); </script>
map
<script type='text/javascript' src="/jquery.js"></script> <script type="text/javascript"> $().ready( function(){ var strings = ['0','1','2','3','4','S','6']; var values = $.map(strings,function(value){ var result = new Number(value); return isNaN(result) ? null:result;//isNaN:is Not a Number的縮寫(xiě) } ); for (key in values) { alert(values[key]); } } ); </script>
遍歷json對(duì)象:
無(wú)規(guī)律:
<script> var json = [{dd:'SB',AA:'東東',re1:123},{cccc:'dd',lk:'1qw'}]; for(var i=0,l=json.length;i<l;i++){ for(var key in json[i]){ alert(key+':'+json[i][key]); } } </script>
有規(guī)律:
packJson = [ {"name":"nikita", "password":"1111"}, {"name":"tony", "password":"2222"} ]; for(var p in packJson){//遍歷json數(shù)組時(shí),這么寫(xiě)p為索引,0,1 alert(packJson[p].name + " " + packJson[p].password); }
也可以用這個(gè):
for(var i = 0; i < packJson.length; i++){ alert(packJson[i].name + " " + packJson[i].password); }
遍歷json對(duì)象
myJson = {"name":"caibaojian", "password":"1111"}; for(var p in myJson){//遍歷json對(duì)象的每個(gè)key/value對(duì),p為key alert(p + " " + myJson[p]); }
//code from http://caibaojian.com/jquery-each-json.html 有如下 json對(duì)象: var obj ={"name":"馮娟","password":"123456","department":"技術(shù)部","sex":"女","old":30}; 遍歷方法: for(var p in obj){ str = str+obj[p]+’,'; return str; }
posted @ 2016-09-26 15:04 有機(jī)肥| 編輯 收藏
Linux scp命令用于Linux之間復(fù)制文件和目錄,具體如何使用這里好好介紹一下,從本地復(fù)制到遠(yuǎn)程、從遠(yuǎn)程復(fù)制到本地是兩種使用方式。這里有具體舉例:
==================
Linux scp 命令
==================
scp 可以在 2個(gè) linux 主機(jī)間復(fù)制文件;
命令基本格式:
scp [可選參數(shù)] file_source file_target
======
從 本地 復(fù)制到 遠(yuǎn)程
======
* 復(fù)制文件:
* 命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
第1,2個(gè)指定了用戶名,命令執(zhí)行后需要再輸入密碼,第1個(gè)僅指定了遠(yuǎn)程的目錄,文件名字不變,第2個(gè)指定了文件名;
第3,4個(gè)沒(méi)有指定用戶名,命令執(zhí)行后需要輸入用戶名和密碼,第3個(gè)僅指定了遠(yuǎn)程的目錄,文件名字不變,第4個(gè)指定了文件名;
* 例子:
scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music
scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3
* 復(fù)制目錄:
* 命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1個(gè)指定了用戶名,命令執(zhí)行后需要再輸入密碼;
第2個(gè)沒(méi)有指定用戶名,命令執(zhí)行后需要輸入用戶名和密碼;
* 例子:
scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/
scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/
上面 命令 將 本地 music 目錄 復(fù)制 到 遠(yuǎn)程 others 目錄下,即復(fù)制后有 遠(yuǎn)程 有 ../others/music/ 目錄
======
從 遠(yuǎn)程 復(fù)制到 本地
======
從 遠(yuǎn)程 復(fù)制到 本地,只要將 從 本地 復(fù)制到 遠(yuǎn)程 的命令 的 后2個(gè)參數(shù) 調(diào)換順序 即可;
例如:
scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/1.mp3
scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/
最簡(jiǎn)單的應(yīng)用如下 :
scp 本地用戶名 @IP 地址 : 文件名 1 遠(yuǎn)程用戶名 @IP 地址 : 文件名 2
[ 本地用戶名 @IP 地址 :] 可以不輸入 , 可能需要輸入遠(yuǎn)程用戶名所對(duì)應(yīng)的密碼 .
可能有用的幾個(gè)參數(shù) :
-v 和大多數(shù) linux 命令中的 -v 意思一樣 , 用來(lái)顯示進(jìn)度 . 可以用來(lái)查看連接 , 認(rèn)證 , 或是配置錯(cuò)誤 .
-C 使能壓縮選項(xiàng) .
-P 選擇端口 . 注意 -p 已經(jīng)被 rcp 使用 .
-4 強(qiáng)行使用 IPV4 地址 .
-6 強(qiáng)行使用 IPV6 地址 .
Linux scp命令的使用方法應(yīng)該可以滿足大家對(duì)Linux文件和目錄的復(fù)制使用了。
posted @ 2016-09-18 17:53 有機(jī)肥| 編輯 收藏
posted @ 2016-09-18 17:52 有機(jī)肥| 編輯 收藏
首先確定妳在頁(yè)面引用的jQuery庫(kù),才能使用它。然后簡(jiǎn)單地使用jQuery()或者它的簡(jiǎn)化形式$(), 傳遞一個(gè)選擇器作為它的第一個(gè)參數(shù)。選擇器通常是一個(gè)指定了一個(gè)或多個(gè)元素的字符串。清單20展示了一些基本的jQuery選擇器的使用。
Listing 20. Basic jQuery selectors
<script type="text/javascript"> var allImages = $("img"); // all IMG elements var allPhotos = $("img.photo"); // all IMG elements with class "photo" var curPhoto = $("img#currentPhoto"); // IMG element with id "currentPhoto" </script> |
需要記住的一點(diǎn)是jQuery方法返回的始終是一個(gè)jQuery對(duì)象。這種對(duì)象支持鏈?zhǔn)讲僮鳎ㄒ?jiàn)清單21)。這一特性在其他JavaScript框架中也是通用的。
Listing 21. Basic jQuery operation with chained method calls
<script type="text/javascript"> $("img").css({"padding":"1px", "border": "1px solid #333"}) .wrap("<div class='img-wrap'/>"); </script> |
上述代碼選中頁(yè)面中所有img元素并設(shè)置padding和border, 然后用一個(gè)帶img-wrap class 的div 來(lái)包裹所有這些img.
清單22則展示了jQuery 是如何將前面章節(jié)的一個(gè)例子進(jìn)行簡(jiǎn)化。
Listing 22. Creating and injecting a DOM node with jQuery
<script type="text/javascript"> alert($("h1:first").html()); // .text() also works and might be better suited here
$("#auth").text("Sign Out");
var $li = $("<li>List Item Text</li>"); // $ is used as var prefix to indicate jQuery object $("ul#nav").append($li); </script> |
之前有提到過(guò)傳遞給jQuery $()的第一個(gè)參數(shù)是一個(gè)字符串形式的選擇器。第二個(gè)不起眼的參數(shù)則允許你設(shè)置context,或者開(kāi)始一個(gè)jQuery節(jié)點(diǎn),抑或把當(dāng)前選擇的元素當(dāng)作 一個(gè)根節(jié)點(diǎn)來(lái)使用。默認(rèn)jQuery會(huì)把Document作為當(dāng)前的Context, 但更好的做法是把context指定得更詳細(xì)更一些,具體到某個(gè)特定的元素身上。在進(jìn)行XML處理時(shí),需要把context設(shè)置為XML的根節(jié)點(diǎn)(見(jiàn)清單 23)。
Listing 23. Retrieving values from an XML document with jQuery
<script type="text/javascript"> // get value of single node (with jQuery) var description = $("description", xmlData).text(); // xmlData was defined in previous section
// get values of nodes from a set (with jQuery) var relatedItems = $("related_item", xmlData); var relatedItemVals = []; $.each(relatedItems, function(i, curItem){ relatedItemVals.push(curItem.text()); }); </script> |
上述代碼使表示變得相當(dāng)簡(jiǎn)潔。通過(guò)向jQuery傳遞節(jié)點(diǎn)名稱(chēng)和設(shè)置它的context為xmlData,可以很方便地獲取想要的節(jié)點(diǎn)。取得元素的值,剛需要一翻周折了。
因?yàn)?span style="color: black; font-size: 9pt;">innerHTML 對(duì) 于非HTML元素不管用,所以就不能使用jQuery的html()方法來(lái)獲取節(jié)點(diǎn)的值。jQuery 雖然提供了一個(gè)跨瀏覽器的方法innerText 來(lái)獲取元素的值,但當(dāng)用來(lái)處理XML時(shí)在瀏覽器間仍有些差異。比如IE會(huì)把包含空值(空格,Tab點(diǎn)位 符,換行)的節(jié)點(diǎn)給忽略掉,而處理這樣的情況時(shí),F(xiàn)ireFox則會(huì)把這些節(jié)點(diǎn)當(dāng)作正常節(jié)點(diǎn)。為了避免這點(diǎn)不一致性,可以創(chuàng)建一個(gè)函數(shù)來(lái)處理。這個(gè)函數(shù)里 需要用到一些jQuery函數(shù): contents(), filter() 和 trim()。
Listing 24. Cross-browser JavaScript functions for accurate text value retrieval of a node
<script type="text/javascript"> /** * Retrieves non-empty text nodes which are children of passed XML node. * Ignores child nodes and comments. Strings which contain only blank spaces * or only newline characters are ignored as well. * @param node {Object} XML DOM object * @return jQuery collection of text nodes */ function getTextNodes(node){ return $(node).contents().filter(function(){ return ( // text node, or CDATA node ((this.nodeName=="#text" && this.nodeType=="3") || this.nodeType=="4") && // and not empty ($.trim(this.nodeValue.replace("\n","")) !== "") ); }); }
/** * Retrieves (text) node value * @param node {Object} * @return {String} */ function getNodeValue(node){ var textNodes = getTextNodes(node); var textValue = (node && isNodeComment(node)) ? // isNodeComment is defined above node.nodeValue : (textNodes[0]) ? $.trim(textNodes[0].textContent) : ""; return textValue; } </script> |
現(xiàn)在來(lái)看看如何設(shè)置節(jié)點(diǎn)的值(見(jiàn)清單25)。示例代碼中有兩點(diǎn)需要注意:一是設(shè)置根結(jié)果的文本值會(huì)重寫(xiě)所有子節(jié)點(diǎn)。另外就是如果一個(gè)節(jié)點(diǎn)之前是沒(méi)有值的,那么就用 node["textContent"]而不是node.textContent。因?yàn)樵?/span>IE中空節(jié)點(diǎn)根本就沒(méi)有textContent屬性。
Listing 25. Cross-browser JavaScript function for accurate setting of the text value of a node
<script type="text/javascript"> function setNodeValue(node, value){ var textNodes = getTextNodes(node); if (textNodes.get(0)){ textNodes.get(0).nodeValue = value; } else { node["textContent"] = value; } } </script> |
在之前的一些例子中已經(jīng)展示了即使用最原始的JavaScript來(lái)處理DOM中的屬性也是非常直觀明了的了。同樣地,jQuery也提供了相應(yīng)的簡(jiǎn)化方式。更重要的是,屬性可以用在選擇器中,非常的強(qiáng)大。
Listing 26. Getting and setting DOM element attributes with jQuery
<script type="text/javascript"> var item = $("item[content_id='1']", xmlData); // select item node with content_id attribute set to 1 var pubDate = item.attr("date_published"); // get value of date_published attribute item.attr("archive", "true"); // set new attribute called archive, with value set to true </script> |
從代碼中可以看出,jQuery的attr()方法即可以設(shè)置設(shè)置也可以返回屬性值。更強(qiáng)大的是jQuery允許在選擇器中提供屬性來(lái)返回特定的元素。下如上面的代碼所展示的那樣,我們獲取到了content_id為1的元素。
或許你已經(jīng)有所了解,Ajax是用JavaScript來(lái)異步從服務(wù)器獲取XML的一種Web技術(shù)。Ajax本身是依賴(lài)XMLHttpRequest (XHR) 所提供的API來(lái)向服務(wù)器發(fā)送請(qǐng)求和從服務(wù)器獲取響應(yīng)的。jQuery除了提供強(qiáng)大的用于遍歷和處理DOM元素的方法外,還提供了跨瀏覽器的Ajax支持。也就是說(shuō)通過(guò)Ajax獲取XML簡(jiǎn)單得就是調(diào)用Ajax的get方法。清單27展示了這樣的例子。
Listing 27. Loading an external XML file with jQuery's Ajax method
<script type="text/javascript"> $.ajax({ type : "GET", url : "/path/to/data.xml", dataType : "xml", success : function(xmlData){ var totalNodes = $('*',xmlData).length; // count XML nodes alert("This XML file has " + totalNodes); }, error : function(){ alert("Could not retrieve XML file."); } }); </script> |
$.ajax()方法有一系列豐富的選項(xiàng)設(shè)置,并且可以通過(guò)其他一些簡(jiǎn)化的變形方式來(lái)調(diào)用,比如$.getScript()會(huì)導(dǎo)入JavaScript腳本并執(zhí)行,$.getJSON()會(huì)獲取JSON數(shù)據(jù)然后可以在Success回調(diào)中使用。當(dāng)裝載XML文件時(shí),妳需要了解一下Ajax的基本語(yǔ)法。如上面代碼所示,我們?cè)O(shè)置類(lèi)型為get,url設(shè)置為從"/path/to/data.xml"這個(gè)路徑獲取XML文件,然后還指明文件類(lèi)型為XML。當(dāng)從服務(wù)器獲取了數(shù)據(jù)后,success 或error中的一個(gè)方法會(huì)被觸發(fā)。本例中,裝載成功的話會(huì)彈出窗口顯示所有節(jié)點(diǎn)數(shù)目。jQuery的星號(hào)選擇器表示匹配所有元素。最重要的一點(diǎn)是在回調(diào)函數(shù)中,第一個(gè)參數(shù)用來(lái)接收從服務(wù)器返回的數(shù)據(jù)。這個(gè)參數(shù)的名字隨便起,接下來(lái)的Context就被設(shè)置成了這個(gè)返回的數(shù)據(jù)。
在處理Ajax相關(guān)的請(qǐng)求時(shí)需要注意跨域問(wèn)題,出于安全性考慮一般不允許從不同的域獲取文件。所以上述例子中的代碼可能在妳實(shí)際的程序中有所不同。
因?yàn)閄HTML是XML的一個(gè)子集,所以像XML一樣處理XHTML是完全沒(méi)有問(wèn)題的。至于為什么妳有處理XHTML的需求是另一回事,但事實(shí)是妳確實(shí)可以這樣做。比如,導(dǎo)入一個(gè)XHTML頁(yè)面然后從中解析數(shù)據(jù)是可行的,雖然我會(huì)建議用另外更強(qiáng)健的方法來(lái)實(shí)現(xiàn)。
盡管之前講述了DOM元素的遍歷和處理,jQuery同時(shí)也可以用來(lái)處理XML,雖然需要先將XML文件破費(fèi)周折地裝載進(jìn)代碼中。本節(jié)的內(nèi)容包含了不同的方法和基本的用于完成XML處理的例子。
posted @ 2016-09-18 17:50 有機(jī)肥| 編輯 收藏
posted @ 2016-09-18 17:48 有機(jī)肥| 編輯 收藏
文章主要參考于:http://www.ruanyifeng.com/blog/2012/05/responsive_web_design.html(阮一峰的網(wǎng)絡(luò)日志)
在這篇文章的基礎(chǔ)上加上了寫(xiě)自己的理解(文章藍(lán)色部分)。
一. 允許網(wǎng)頁(yè)寬度自動(dòng)調(diào)整:
"自適應(yīng)網(wǎng)頁(yè)設(shè)計(jì)"到底是怎么做到的?其實(shí)并不難。
首先,在網(wǎng)頁(yè)代碼的頭部,加入一行viewport元標(biāo)簽。
<meta name="viewport" content="width=device-width, initial-scale=1" />
viewport是網(wǎng)頁(yè)默認(rèn)的寬度和高度,上面這行代碼的意思是,網(wǎng)頁(yè)寬度默認(rèn)等于屏幕寬度(width=device-width),原始縮放比例(initial-scale=1)為1.0,即網(wǎng)頁(yè)初始大小占屏幕面積的100%。
對(duì)于viewport屬性,我是真正在接觸移動(dòng)web開(kāi)發(fā)是才遇到的,一般的pc布局都是固定的960px,1000px這種。
下面三篇文章是對(duì)viewport屬性詳細(xì)的解釋?zhuān)?/span>
Viewport(視區(qū)概念)——移動(dòng)端的應(yīng)用
對(duì)于老式IE6,7,8瀏覽器需要js處理,由于主要平臺(tái)是ios和安卓,所以可以暫時(shí)不考慮
二. 不使用絕對(duì)寬度
由于網(wǎng)頁(yè)會(huì)根據(jù)屏幕寬度調(diào)整布局,所以不能使用絕對(duì)寬度的布局,也不能使用具有絕對(duì)寬度的元素。這一條非常重要。
具體說(shuō),CSS代碼不能指定像素寬度:
width:xxx px;
只能指定百分比寬度:
width: xx%;
或者:
width:auto;
這里開(kāi)發(fā)是指一個(gè)網(wǎng)頁(yè)不僅能用在pc上,也能同時(shí)用于移動(dòng)端,但是對(duì)于webapp這種還是需要單獨(dú)做一個(gè)webapp使用的頁(yè)面。
對(duì)于這個(gè)知識(shí)點(diǎn),對(duì)于我目前做的項(xiàng)目有用處,主要用于控制限定數(shù)據(jù)庫(kù)里讀出來(lái)的圖片寬度。
詳見(jiàn):手機(jī)webapp的jquery mobile初次使用心得和解決圖片自適應(yīng)大小問(wèn)題
三. 相對(duì)大小的字體
字體也不能使用絕對(duì)大小(px),而只能使用相對(duì)大小(em)。
body {
font: normal 100% Helvetica, Arial, sans-serif;
}
上面的代碼指定,字體大小是頁(yè)面默認(rèn)大小的100%,即16像素。
h1 {
font-size: 1.5em;
}
然后,h1的大小是默認(rèn)大小的1.5倍,即24像素(24/16=1.5)。
small {
font-size: 0.875em;
}
small元素的大小是默認(rèn)大小的0.875倍,即14像素(14/16=0.875)。
四. 流動(dòng)布局(fluid grid)
"流動(dòng)布局"的含義是,各個(gè)區(qū)塊的位置都是浮動(dòng)的,不是固定不變的。
.main {
float: right;
width: 70%;
}
.leftBar {
float: left;
width: 25%;
}
float的好處是,如果寬度太小,放不下兩個(gè)元素,后面的元素會(huì)自動(dòng)滾動(dòng)到前面元素的下方,不會(huì)在水平方向overflow(溢出),避免了水平滾動(dòng)條的出現(xiàn)。
另外,絕對(duì)定位(position: absolute)的使用,也要非常小心。
五. "自適應(yīng)網(wǎng)頁(yè)設(shè)計(jì)"的核心,就是CSS3引入的Media Query模塊。
它的意思就是,自動(dòng)探測(cè)屏幕寬度,然后加載相應(yīng)的CSS文件。
<link rel="stylesheet" type="text/css"
media="screen and (max-device-width: 400px)"
href="tinyScreen.css" />
上面的代碼意思是,如果屏幕寬度小于400像素(max-device-width: 400px),就加載tinyScreen.css文件。
<link rel="stylesheet" type="text/css"
media="screen and (min-width: 400px) and (max-device-width: 600px)"
href="smallScreen.css" />
如果屏幕寬度在400像素到600像素之間,則加載smallScreen.css文件。
除了用html標(biāo)簽加載CSS文件,還可以在現(xiàn)有CSS文件中加載。
@import url("tinyScreen.css") screen and (max-device-width: 400px);
六. CSS的@media規(guī)則
同一個(gè)CSS文件中,也可以根據(jù)不同的屏幕分辨率,選擇應(yīng)用不同的CSS規(guī)則。
@media screen and (max-device-width: 400px) {
.column {
float: none;
width:auto;
}
#sidebar {
display:none;
}
}
上面的代碼意思是,如果屏幕寬度小于400像素,則column塊取消浮動(dòng)(float:none)、寬度自動(dòng)調(diào)節(jié)(width:auto),sidebar塊不顯示(display:none)。
這篇文章有詳細(xì)的講解:手機(jī)web——自適應(yīng)網(wǎng)頁(yè)設(shè)計(jì)(@media使用)
七. 圖片的自適應(yīng)(fluid image)
除了布局和文本,"自適應(yīng)網(wǎng)頁(yè)設(shè)計(jì)"還必須實(shí)現(xiàn)圖片的自動(dòng)縮放。
這只要一行CSS代碼:
img { max-width: 100%;}
這行代碼對(duì)于大多數(shù)嵌入網(wǎng)頁(yè)的視頻也有效,所以可以寫(xiě)成:
img, object { max-width: 100%;}
老版本的IE不支持max-width,所以只好寫(xiě)成:
img { width: 100%; }
此外,windows平臺(tái)縮放圖片時(shí),可能出現(xiàn)圖像失真現(xiàn)象。這時(shí),可以嘗試使用IE的專(zhuān)有命令:
img { -ms-interpolation-mode: bicubic; }
或者,Ethan Marcotte的imgSizer.js。
addLoadEvent(function() {
var imgs = document.getElementById("content").getElementsByTagName("img");
imgSizer.collate(imgs);
});
不過(guò),有條件的話,最好還是根據(jù)不同大小的屏幕,加載不同分辨率的圖片。有很多方法可以做到這一條,服務(wù)器端和客戶端都可以實(shí)現(xiàn)。
posted @ 2013-09-10 15:21 有機(jī)肥 閱讀(121) | 評(píng)論 (0) | 編輯 收藏