Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Разработка Web-приложений для iPhone

.pdf
Скачиваний:
15
Добавлен:
09.04.2015
Размер:
5.2 Mб
Скачать

63(+$'

<table id="DeptsTab"> <tr><td></td></tr> </table>

</body>

</html>

+'*$'", 3-9. G"3 WEB #+)&1-C7 ,)-."/01-4

S*)&+-+0 %1-8&1-0 1& +&*.-C@ "+30."%, %#0 00 #"30)/&1-0 B")8-)@0+#4 #C01&)-08.

3.10.?%>%+,#

1)F".1"#+6= #$"8,"1@2+0 - "+.&36+0 ,)-."/01-0. '&(*0)-+0#6 % -#,".6(@087> ,0)080117>, B@1$C-4> - id.

2)H",-E-+0 $"3 +&$-8 "*)&("8, :+"*7 ,"#.0 1&/&+-4 $1",$- 1& #+)&1-C0 ,"4%.4.#4 #,-#"$ #"+)@31-$"% "+30.& # 8&$#-8&.61"2 (&),.&+"2. '0(@.6+&+ )&*"+7 <&E0?" ,)-."/01-4 3"./01 %7?.430+6 #.03@=D-8 "*)&("8 ('-#. 3.6)

)'*. 3.6. F)0"*)&("%&1172 %-3 #+)&1-C7

3)!"3-B-C-)@2+0 B&2. department.xml +&$-8 "*)&("8, :+"*7 )0(@.6+&+7 )&*"+7 ,)"?)&887 *7.- #.03@=D-8- ('-#. 2.7)

61

)'*. 3.7. !"3-B-C-)"%&1172 %-3 #+)&1-C7

'&(*0)-+0#6 #" #+)@$+@)"2 XML 3"$@801+&. !"3-B-C-)@2+0 #"30)/&1-0 3"$@801+&. V30#6 10 +)0*@0+#4 ,)"?)&88-)"%&1-0.

3.11. :/#)6/%.)&%+,# XML )67#24% & 04/)23 4#204%

A,"#"* ,)0"*)&("%&1-4 "*R0$+& % +0$#+"%72 XML 3"$@801+ "#1"%&1 1& ,"#.03"%&+0.61"8 ,)"#8"+)0 (1&:01-2 ,".02 "*R0$+& - ,"#.03@=D-8 B")8-)"%&1-- +0$#+"%7> #+)"$. H02#+%-4 3.4 :+-:1"?" B")8-)"%&1-4 3"$@801+& XML ,"$&(&17 % #.03@=D08 #C01&)--:

(L-#+-1? 3-10)

function describeContentAsXMLString(xmlObj){ //K.+-7."&-1'1"+3 -7R+83 1 3+843 XML (-8A?+)3"

var xml='<?xml version="1.0" encoding="utf-8" ?>\n';

var organization=xmlObj.getElementsByTagName("organization"); xml+='<organization name="'+organization[0].getAttribute("name")+'">\n'; xml+=organization[0].firstChild.data;

xml+='</organization>';

alert(xml);

}

+'*$'", 3-10. A"(3&1-0 +0$#+"%"?" XML 3"$@801+&

J081"?" ,)0"*)&("%&1172 $"3 ,"(%".40+ ,)"#8"+)0+6 XML 3"$@801+ ,"#.0 1&/&+-4 $1",$- showDoc. ('-#. 2.7). S*)&+-+0 %1-8&1-0, 3.4 %7%"3& 3"$@801+& % "$1" alert, -#,".6(@0+#4 $1",$& showDoc.

62

)'*. 3.8. !"3-B-C-)"%&1172 %-3 #+)&1-C7

3.12. 1)()*+,4# 4#204 @3+2A,,

H",".1-+0 +0$#+ B@1$C-- describeContentAsXMLString(xmlObj) +&$-8 "*)&("8,

:+"*7 ,"#.0 1&/&+-4 1& $1",$@ showDoc ,"$&(7%&."#6 %#0 #"30)/-8"0 XML 3"$@801+& (#8 )-#.), & 10 0?" :+6. F)-80)172 %-3 -1B")8&C--, %7%"3-8"2 % "$1" alert, ,"$&(&1" 1& )-#. 3-9.

)'*. 3.9. H",".1011"0 ,)-."/01-0

S+.&36+0 - ,)-."/01-0 ,".1"#+6=. A"*#+%011" 3"*&%.01-0 +0$#+& % #C01&)-2 ," "*R08@ 10 3"./1" ,)0%7E&+6 20-25 #+)"$.

3.13. B.$#+#+,# %4/,634)& , >%++'" & XML )67#24#

Q@1$C-4, +0$#+ $"+")"2 ,"$&(&1 1-/0 (L-#+-1? 3.11), -#,".6(@0+ (1&:01-4 ,".02 3.4

63

-(80101-4 &+)-*@+"% - 3&117> % XML "*R0$+0.

function setXMLFromFormFields(xmlObj){ //M(80140+ &+)-*@+7 - 3&1170 ," (1&:01-48 ,".02 B")8

var organization=xmlObj.getElementsByTagName("organization"); organization[0].setAttribute("name",

document.getElementById("orgName").value); organization[0].firstChild.data =

document.getElementById("myOrgComment").value;

}

+'*$'", 3-11. A"(3&1-0 +0$#+"%"?" XML 3"$@801+&

< 3"$@801+0 0#+6 3%& ,".4, $"+")70 8"/1" -#,".6("%&+6 3.4 )03&$+-)"%&1-4 3"$@801+&. ;1&."?-:178 "*)&("8 8"/1" %7,".1-+6 - 3)@?-0 -(80101-4. <-3 #+)&1-C7 ,"$&(&1 1-/0

)'*. 3.10. M(80101-0 XML 3"$@801+&

G&$ - )&100, 3.4 %7%"3& +0$#+& % "$1" alert -#,".6("%&. $1",$& showDoc.

3.14. C>%*#+,# %4/,634)& , 3.*)& XML )67#24%

H&.00 ,"$&(&17 80+"37, -#,".6(@0870 3.4 @3&.01-4 &+)-*@+"% - @(."%.

F@#+6, e - f – 10$"+")70 I.0801+7 3"$@801+&, 1&,)-80), ,".@:01170 #.03@=D-8 "*)&("8: var e=xmlObj.getElementsByTagName('department')[i];

var f=e. getElementsByTagName('employee')[j];

!0+"37 - %7,".140870 -8- 302#+%-4 @$&(&17 % +&*.-C0 1-/0

e.hasAttribute(attributeName) <"(%)&D&0+ true, 0#.- 0 -800+ &+)-*@+ # -80108 attributeName, false % ,)"+-%1"8 #.@:&0

e.hasAttributes() <"(%)&D&0+ true, 0#.- e -800+ &+)-*@+7, % ,)"+-%1"8 #.@:&0 false

64

e.hasChildNodes()

<"(%)&D&0+ true, 0#.- e -800+ 3":0)1-0 @(.7,

 

% ,)"+-%1"8 #.@:&0 false

e.appendChild(node)

H"*&%.40+ $ e @(0. node

 

 

e.removeAttribute(attributeName)

93&.40+ &+)-*@+ # (&3&1178 -80108

 

 

e.removeChild(f)

93&.40+ @ @(.& e 3":0)1-2 @(0. f

 

 

e.getAttributeNode(attributeName)

V30#6 g= e.getAttributeNode('telno') ##7.$& 1&

 

&+)-*@+ # (&3&1178 -80108

e.removeAttributeNode(attributeRef)

e.removeAttributeNode(g) @3&.40+ &+)-*@+

 

@(.& e ," #7.$0

e.replaceChild(newChild,oldChild)

V&80D&0+ #+&)72 3":0)1-2 @(0. (oldChild)

 

1"%78 (newChild)

3.16. B.$#+#+,# 04/3243/' XML )67#24%. D*)+,/)&%+,# E*#$#+4%

H"*&%.01-0 $ 3"$@801+@ "+30.&. < 3&11"8 ,)-80)0 1& "#1"%0 @(.&, #@D0#+%@=D0?" % 3"$@801+0, #"(3&0+#4 (-#,".6(@0+#4 ?.@*"$"0 $",-)"%&1-0) 1"%72 @(0., $"+")72 3"*&%.40+#4 ,"#.0 @(.& department, (&,-#&11"?" % 3"$@801+ ,"#.031-8. S*)&+-+0 %1-8&1-0 1& +"+ ,)-08, $"+")72 -#,".6("%&1 3.4 %$.=:01-4 @(.&, ,"#.0 ,"#.0310?" #@D0#+%@=D0?" (L-#+-1? 3-11)

function XMLAddDepartment(xmlObj)

{//,"."?+3. - XML object

var organization=xmlObj.getElementsByTagName("organization"); var dpt=organization[0].getElementsByTagName("department"); var lastDept=dpt[dpt.length-1];

var newDept=lastDept.cloneNode(true); newDept.setAttribute("title",

"New department, inserted after last one"); organization[0].insertBefore(newDept,lastDept.nextSibling); return xmlObj;

}

+'*$'", 3-11. A"(3&1-0 +0$#+"%"?" XML 3"$@801+&

F">"/-8 #,"#"*"8 8"/1" %$.=:-+6 % 3"$@801+ - @(0., 10 -80=D-2 &1&."?"% % 3"$@801+0. (G&$ #"(3&+6 1"%72 "*R0$+ XML -( #+)"$- +0$#+& c8. 3&.00)

3.17. B.$#+#+,# 04/3243/' XML )67#24%. !).>%+,# )67#24% ,. 04/)2, 4#204%

< XML "*R0$+ 8"/1" %$.=:-+6 3",".1-+0.6172 @(0., #"(3&% 0?" -( #+)"$- +0$#+&. A.03@=D-2 B)&?801+ $"3& -..=#+)-)@0+ I+@ %"(8"/1"#+6 (L-#+-1? 3.12)

function XMLAddDepartmentFromString(xmlObj)

{//,"."?+3. - XML object

var organization=xmlObj.getElementsByTagName("organization"); var dpt=organization[0].getElementsByTagName("department"); var lastDept=dpt[dpt.length-1];

var newDept=createXMLObjectFromString(sObj);

var d=newDept.getElementsByTagName("department")[0];

65

organization[0].insertBefore(d.cloneNode(true),

lastDept.nextSibling);

setOrgDataFromXMLObj(xmlObj); //K+.+A43")"1$01"+3 JS Objects

pageSetFormFieldsFromOrg();//K+.+.04-1'1"+3 43.")0>A return xmlObj;

}

var sObj="<department title='New department, created from string' telno='123-45-67'>\nB-43-03 0& 4-3.A()08-1 department2\n<employee name='B0(-.-1' salary='121' />\n<employee

name='=.+?0)' salary='72' />\n<employee name='P$@0)' salary='12' />\n</department>";

function createXMLObjectFromString(str){

str=window.prompt("S-.?" (-7"1$+)05 (+,".3"?+)3"",str); var parser=new DOMParser();

var xmlObj=

parser.parseFromString(str,"text/xml"); return xmlObj;

}

+'*$'", 3.12 A"(3&1-0 1"%"?" 30,&)+&801+&

Q@1$C-"1&.61"#+6, "*0#,0:-%&=D&4 #"(3&1-0 XML "*R0$+& -( #+)"$-, #"*)&1& % B@1$C-- createXMLObjectFromString(str). ;)?@801+ I+"2 B@1$C-- str I+" – +& #+)"$&, -( $"+")"2 #"(3&0+#4 "*R0$+ XML. P0 302#+%-4, $"+")70 10"*>"3-8" %7,".1-+6 (&3&=+#4

3%@84 #+)"$&8-. A+)"$&

var parser=new DOMParser();

#"(3&0+ 1"%72 "*R0$+ – parser.

Parser @800+ #"(3&%&+6 "*R0$+7 XML, I+" ,"$&(&1" % #+)"$0 xmlObj=parser.parseFromString(str,"text/xml");

H&.00 #"(3&1172 "*R0$+ 8"/1" %#+)&-%&+6 % #@D0#+%@=D-2 3"$@801+.

3.18. B+4#</%A,- 0 6%.%$, >%++'"

<I+"8 ,)-80)0 )#8&+)-%&0+#4 ,)-%"3-8&4 1& )-#. #>08& )&*"+7 ,)-."/01-4. < 1&:&.6172 8"801+ %)0801- (&?)@/011"0 ,)-."/01-0 ,)"%0)40+ 1&.-:-0 XML 3"$@801+& %

."$&.61"2 *&(0 3&117>. N#.- 3"$@801+ "*1&)@/01, +" 1& 0?" "#1"%0 #"(3&0+#4 XML "*R0$+, ,"#.0 :0?" B")8-)@0+#4 HTML #+)&1-C&. N#.- XML 3"$@801+& % ."$&.61"2 *&(0 10+, +" 3"$@801+ #:-+7%&0+#4 # #0)%0)&, & (&+08 1& 0?" "#1"%0 #"(3&0+#4 XML "*R0$+. F)-."/01-0 %7,".140+ 302#+%-4 1&3 "*R0$+"8 - #">)&140+ +)0*@0870 -(80101-4 % ."$&.61"2 *&(0 3&117> $&$ 1"%@= %0)#-= XML 3"$@801+&. F)- 10"*>"3-8"#+- "+)03&$+-)"%&11&4 %0)#-4 3"$@801+& % %-30 +0$#+"%"2 #+)"$- 8"/0+ *7+6 "+,)&%.01& 1& #0)%0).

<I+"8 ,)-80)0 +&$/0 ,"$&(7%&0+#4 #,"#"* #"(3&1-4 XML "*R0$+& -( +0$#+"%"2 #+)"$-.

66

)'*. 3.11 A>08& ,)-."/01-4, -#,".6(@=D0?" *&(7 3&117> - XML

>%?7'&;

H.4 )&*"+7 ,)-."/01-4 ,"1&3"*-+#4 03-1#+%011&4 +&*.-C& XMLDocs % I+"2 +&*.-C0 *@3@+ 3%& ,".4

o Versnum – 1"80) %0)#-- (+-, Integer, ,0)%-:172 $.=:, 8"/0+ B")8-)"%&+6#4 % )0/-80 autoincrement)

o Body – #"*#+%011" +0." XML 3"$@801+& (+-, BLOB)

Q@1$C--, "*0#,0:-%&=D-0 #"(3&1-0 - @1-:+"/01-0 +&*.-C, ,)-%03017 % .-#+-1?0 3.13

function dropTables(){ var db=systemDB;

if(window.confirm(":4+ 3"7$0>' 7"&' ("))'* 7A(A3 A("$+)'!")){ db.transaction(

function (transaction) {

transaction.executeSql('DROP TABLE XMLDocs;',[], nullDataHandler, killTransaction);

}

);

alert("done");

}

else alert("E+#4310+ -3?+)+)-");

}

function createTables(db)

{

/* : ;3-# <"430 4-&("2345 3"7$0>', +4$0 -)0 +J+ )+ 4-&(")' */

67

db.transaction(

function (transaction) {

transaction.executeSql('CREATE TABLE IF NOT EXISTS XMLDocs '+//T3-

&"8"&")-

'('+

'VERSNUM INTEGER PRIMARY KEY AUTOINCREMENT, BODY BLOB NOT NULL'+ ');',

[], nullDataHandler, killTransaction); transaction.executeSql('select count() as total from XMLDocs; ', [], reportSuccess, killTransaction);

}

);

}

+'*$'", 3.13 Q@1$C-- 3.4 #"(3&1-4 - @3&.01-4 +&*.-C7 XMLDocs

K#?%37."'. ' '2:."."'. 0#9/:."$% XML

H%0 "#1"%170 B@1$C-- 3.4 )&*"+7 # XML 3"$@801+"8 % 3&11"8 ,)-."/01--. F0)%&4 B@1$C-4 3"*&%.40+ 1"%72 XML 3"$@801+ $ *&(0 3&117>, %+")&4 -(80140+ 3"$@801+, -80=D-2 ,"#.031== %0)#-=. P&$"2 ,"3>"3 ,"(%".40+ ,)"308"1#+)-)"%&+6 %#0 ,)-087 )&*"+7 # *&(&8- 3&117> - XML 3"$@801+&8-, 1" 10 @#."/140+ ."?-$@ (& #:0+ -#,".6("%&1-4 10#@D0#+%0117> 30+&.02.

K+- B@1$C-- ,"$&(&17 % .-#+-1?0 3.14.

//

function insertXMLData(db)

{

/* C")+4+)0+ &",040 */ db.transaction(

function (transaction) {

transaction.executeSql('INSERT into XMLDocs (BODY) VALUES (?); ', [describeContentAsXMLString(myResponseXML)], nullDataHandler,

killTransaction);

}

);

}

function updateLastXMLRecord(db)

{

/* 67)-1$+)0+ &",040 */ db.transaction(

function (transaction) {

transaction.executeSql('UPDATE XMLDocs SET BODY= ? WHERE VERSNUM=(SELECT max(VERSNUM) from XMLDocs); ',

[describeContentAsXMLString(picturesXML)], nullDataHandler, killTransaction);

}

);

68

}

L-#+-1? 3.14. H"*&%.01-0 - "*1"%.01-0 XML 3"$@801+"% % *&(0 3&117>

S*)&+-+0 %1-8&1-0 1& #,"#"*7 -#,".6("%&1-4 *."$& ,"3#+&1"%$-. '&(.-:170 B@1$C-- "*0#,0:-%&=+ )&(170 80+"37 B")8-)"%&1-4 +0$#+"%"?" XML 3"$@801+&.

E;?#49% '2 ?%2; 0%"";@ XML 0#9/:."$%

< )#8&+)-%&08"8 ,)-."/01-- # C0.6= @,)"D01-4 %#0?3& %7*-)&0+#4 #&8&4 ,"#.03144 %0)#-4 3"$@801+&, 00 1"80) ",)030.40+#4 c ,"8"D6= ",0)&+")& SQL

SELECT max(VERSNUM) from XMLDocs

H&.00 "+"*)&/&0+#4 -8011" I+& %0)#-4. L-#+-1? 3.15 ,"$&(7%&0+ I+@ B@1$C-= #C01&)-4.

function getXMLFromDB(db)

{

/* : ;3-# <"430 (-8A?+)3 1'70."+345 0& 7"&' */

db.transaction(

function (transaction) {

transaction.executeSql('select BODY from XMLDocs where versnum=(SELECT max(VERSNUM) from XMLDocs );',

[], showYourBody, killTransaction);

}

);

}

+'*$'", 3.15. F".@:01-0 +0$#+"%"?" XML 3"$@801++& -( *&(7 3&117>

F"#.0 %7*")$- 3"$@801+& -( *&(7 0?" 10"*>"3-8" ,)0"*)&("%&+6 % XML "*R0$+ I+" 30.&0+ B@1$C-4 showYourBody().

C#20%"'. 0#9/:."$% '2 *$4#9' $.9*$%

Q@1$C-4 showYourBody() -#,".6(@0+ )#8"+)01170 )&100 ,)-087 3.4 B")8-)"%&1-4 XML "*R0$+& -( #+)"$- +0$#+&. L-#+-1? 3.16. ,"$&(7%&0+ I+@ B@1$C-=.

function showYourBody(transaction,results){ var parser=new DOMParser();

responseXML=

parser.parseFromString(results.rows.item(0)['BODY'],

"text/xml");

setFormFieldsFromXML(responseXML);

return;

}

+'*$'", 3.16. F)0"*)&("%&1-0 #+)"$- +0$#+& % XML 3"$@801+

F"#.0 #"(3&1-4 XML "*R0$+& -( #:-+&11"?" -( *&(7 3&117> +0$#+&, ,".4 JP!H #+)&1-C7 @#+&1&%.-%&=+#4 B@1$C-02

setFormFieldsFromXML(responseXML)

K+& B@1$C-4 @#+&1&%.-%&0+ #:-+&1170 (1&:01-4 % ,".4, 3",@#$&=D-0 )03&$+-)"%&1-0.

69

-%1%78"%( =4#3.49% ?%2; 0%"";@

J&:&.61&4 ,)"%0)$& %7,".140+#4 ,"#.0 (&?)@($- HTML #+)&1-C7. N0 10"*>"3-8"#+6 #%4(&1&

# ,)"#+78 @#."%-08 )&*"+7 ,)-."/01-4, 0#.- *&(& 3&117> ,@#+&, +" 3"$@801+ #:-+7%&0+#4 # #0)%0)&. N#.- % *&(0 3&117> -800+#4 3"$@801+, +" %7*")$& "#@D0#+%.40+#4 -( ."$&.61"2 *&(7 3&117>.

F)"%0)$& 1&.-:-4 3"$@801+& % *&(0 %7,".140+#4 +&$ ():

//P& 7"&' ("))'* 4<03'1"+345 -7J++ <04$- 1+.40# (-8A?+)3" function startUp(db)

{

/* K.-1+.8" )"$0<05 (-8A?+)3-1 */ db.transaction(

function (transaction) {

transaction.executeSql('select count() as total from XMLDocs; ', [], checkRecords, killTransaction);

}

)

}

function checkRecords(transaction,results){

var total=parseInt(results.rows.item(0)['total']); if(total>0) {

//E"))'+ &"3.+7-1")' 0& %E getXMLFromDB(systemDB); return;

}

//E"))'+ &"3.+7-1")' 0& 043-<)08" XML requestContent();

return;

}

+'*$'", 3.17. F)"%0)$& #@D0#+%"%&1-4 3"$@801+& % *&(0

<#0 10"*>"3-870 3.4 B@1$C-"1-)"%&1-4 B@1$C-- #"#+&%.017. '&100 )&(*-)&.-#6 B@1$C--, ,"(%".4=D-0 (1&:-+0.61" )E-)-+6 %"(8"/1"#+- ,)-."/01-4.

3.19. ?%>%+,- >*- 0%$)04)-4#*8+); (/)/%6)42,

J&,-#&+6 HTML $"3 - Javascript #C01&)-2 3.4 )0E01-4 #.03@=D-> (&3&:

1.< *.&1$&> (&$&("% "+"*)&/&0+#4 -1B")8&C-4 " 1"80)0 (&$&(& (orderId), -801- (&$&(:-$& (name) - #@88&)1"2 #+"-8"#+- (&$&(&. A"(3&+6 XML 3"$@801+, #"30)/&D-2 2-3 (&,-#- *.&1$&. <7*)&+6 -( 3"$@801+& - ,)-%0#+- 1& WEB #+)&1-C0 3&1170 "* -801- (&$&(:-$& - #@88&)1"2 #@880 (&$&("% 1& 8-1-8&.61@= - 8&$#-8&.61@= #@88@.

2.< %03"8"#+4> ," (&),.&+0 #"+)@31-$"% "+30."% "+"*)&/&0+#4 -1B")8&C-4 " 1&(%&1-- "+30.& (Title), -801- #"+)@31-$& (name) - 0?" (&),.&+0 (salary). A"(3&+6 XML 3"$@801+, #"30)/&D-2 (&,-#- " 2-3> "+30.&>. <7*)&+6 -( 3"$@801+& - ,)-%0#+- 1& WEB #+)&1-C0 3&1170 " #"+)@31-$&> "+30.& # 8&$#-8&.61"2 #@88&)1"2 (&),.&+"2

(salary).

3.< #,-#$&> ")?&1-(&C-- ,)-%03017 3&1170 "* "+30.&> - #"+)@31-$&> (1&(%&1-0 "+30.&, +0.0B"1 "+30.&, B&8-.-- - (&),.&+7 #"+)@31-$"%). A"(3&+6 XML 3"$@801+,

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]