เคยคิดเกี่ยวกับการใช้ RecordSet ใน JavaScript หรือไม่? ปรากฎว่าข้อมูลการทำงานของลูกค้านั้นง่ายมาก กำหนดแหล่งข้อมูลผูกข้อมูลกับแท็กต่างๆและบรรลุเอฟเฟกต์เหมือนแอปพลิเคชัน เจ๋งมาก! (ก่อนอื่นเนื้อหาของบทความมาจาก MSDN แต่มันเป็นเพียงบทสรุปในคำพูดของฉันเอง)
มาดูสองตัวอย่าง:
http://msdn.microsoft.com/workshop/samples/author/databind/dbevts.htm
http://msdn.microsoft.com/workshop/samples/author/databind/dbupdate.htm
ฉันต้องชื่นชม Microsoft อีกครั้ง
นี่คือสถาปัตยกรรม databinding:
แน่นอนว่ามีขั้นตอนต่อไปนี้ในการใช้งานการเชื่อมโยงข้อมูล:
ขั้นตอนแรกคือการกำหนดแหล่งข้อมูล
ตั้งแต่ IE4.0 แหล่งข้อมูลสี่แหล่งต่อไปนี้ได้รับการสนับสนุน:
การควบคุมข้อมูลแบบตาราง (TDC)
TDC ให้วิธีง่ายๆในการเข้าถึงข้อมูลข้อความด้วยรูปแบบโดยทั่วไปไฟล์ CSV
นี่คือตัวอย่างง่ายๆ:
<Object classID = CLSID: 333C7BC4-460F-11D0-BC04-0080C7055A83
id = dSocomposer width = 0 ความสูง = 0>
<param name = dataUrl value = composer.csv>
</ject>
บริการข้อมูลระยะไกล (RDS)
บริการข้อมูลระยะไกลเข้าถึงข้อมูลโดยตรงทางฝั่งเซิร์ฟเวอร์ระยะไกล Internet Explorer 4.0 RDS ถูกนำไปใช้ผ่าน OLE-DB หรือ Open Database Connectivity (ODBC)
ตัวอย่าง:
<Object classid = clsid: BD96C556-65A3-11D0-983A-00C04FC29E33
id = ความสูง dsocomposer = 0 width = 0>
<param name = ค่าเซิร์ฟเวอร์ = http: // musicserver>
<param name = connect value = dsn = music; uid = guest; pwd =>
<param name = sql value = เลือก compsr_name จากนักแต่งเพลง>
</ject>
แต่มันรู้สึกถึงปัญหาด้านความปลอดภัยเล็กน้อยเพราะลูกค้าสามารถดูรหัสนี้ได้
แหล่งข้อมูล XML
ฉันจะไม่พูดมากเกี่ยวกับ XML ฉันใช้มันแบบนี้ใน IE4.0:
<แอปเปิล
code = com.ms.xml.dso.xmldso.class
id = xmldso
ความกว้าง = 0
ความสูง = 0
mayscript = true>
<param name = url value = composer.xml>
</aplet>
Internet Explorer 5 ขึ้นไปอาจเป็นเช่นนี้:
<!-[ถ้า gte ie 5]>
<xml id = xml1>
<หัวข้อ-อินโฟ>
<page- type> อ้างอิง </page- type>
<member- type> คุณสมบัติ </member-type>
<SisterNceStent-Name> AccessKey </stervantent-name>
<runtime-name readable = 1 writeable = 1> accessKey </runtime-name>
<Abstract> ตั้งค่าหรือดึงคีย์ตัวเร่งความเร็วสำหรับวัตถุ </bstract>
</topic-info>
</xml>
<! [endif]->
นอกจากนี้ IE ยังให้แนวคิดของเกาะข้อมูล XML: XML Data Islands
แหล่งข้อมูล MSHTML
ตัวอย่างของหน้าข้อมูล HTML:
<h1 id = compsr_first> hector </h1>
<marquee id = compsr_last> berlioz </marquee>
<div id = compsr_birth> 1803 </div>
<h2 id = compsr_first> mimter </h2>
<h3 id = compsr_last> moussorgsky </h3>
<ปุ่ม id = compsr_birth> 1839 </button>
<textarea id = compsr_first> franz </textarea>
<xmp id = compsr_last> liszt </xmp>
<span id = compsr_birth> 1811 </span>
เมื่อกำหนดแล้วคุณสามารถเข้าถึงได้เช่นนี้:
<object id = htmlcomposer data = compdata.htm ความสูง = 0 width = 0>
</ject>
.STEP 2: ผูกข้อมูลกับองค์ประกอบ HTML
โดยทั่วไปจะถูกผูกไว้ผ่าน DataSRC และ DATAFLD ในแท็ก ตัวอย่างเช่น:
<อินพุตประเภท = textbox dataSrc =#dsocomposes datafld = compsr_last>
และ
<ตาราง dataSrc =#dsocomposer>
<tr>
<td> <div datafld = compsr_first> </div> </td>
</tr>
</table>
นี่คือตัวอย่างของตารางผูกพัน:
http://msdn.microsoft.com/workshop/samples/author/databind/dbtable.htm
ในหมู่พวกเขาแหล่งข้อมูล:
<Object ID = TDCCOMPOSERS ClassID = CLSID: 333C7BC4-460F-11D0-BC04-0080C7055A83>
<param name = dataurl value = http: //msdn.microsoft.com/workshop/samples/author/databind/composer.csv>
<param name = useHeader value = true>
<param name = textqualifier value = '>
</ject>
โต๊ะที่ทำจากกัน
<ตาราง dataSrc =#tdccomposers>
<thead> <tr style = font-weight: bold>
<td> ครั้งแรก </td> <td> ล่าสุด </td> <td> เกิด </td> <td> ความตาย </td> <td> แหล่งกำเนิด </td>
</tr> </head>
<tbody>
<tr>
<td> <div datafld = compsr_first> </div> </td>
<td> <div datafld = compsr_last> </div> </td>
<td> <div datafld = compsr_birth> </div> </td>
<td> <div datafld = compsr_death> </div> </td>
<td> <div datafld = Origin> </div> </td>
</tr>
</tbody>
</table>
นี่คือผลกระทบ:
ต้นกำเนิดความตายครั้งสุดท้ายครั้งสุดท้าย
Hector Berlioz 1803 1869 ฝรั่งเศส
Moussorgsky 1839 1881 รัสเซีย
Franz Liszt 1811 1886 ฝรั่งเศส
Antonio Vivaldi 1678 1741 อิตาลี
โยฮันน์เซบาสเตียนบาค 1685 1750 เยอรมนี
Ludwig van Beethoven 1770 1827 เยอรมนี
Wolfgang Amadeus Mozart 1756 1791 ออสเตรีย
Joseph Haydn 1732 1809 เยอรมนี
Claude Debussy 1862 1918 ฝรั่งเศส
ขั้นตอนที่ 3: การเพิ่มแบบไดนามิกการลบ ฯลฯ ของข้อมูล (โมเดลวัตถุ)
แน่นอนว่าการผูกมัดสามารถเป็นแบบไดนามิก:
ในสคริปต์:
span1.datasrc = #dsocomposer;
span1.datafld = compsr_first;
HTML มีลักษณะเช่นนี้:
<span dataSrc =#dsocomposer datafld = compsr_first> </span>
และคุณสามารถเข้าถึงแหล่งข้อมูล ADO:
var orcordset = dsocomposer.recordset;
โดยธรรมชาติมี orcordset .Movenext และอื่น ๆ
ชอบ:
<อินพุต id = cmdnavfirst type = button value = <<
onclick = tdCcomes.recordset.movefirst ()>
<อินพุต id = cmdnavprev type = button value = <
onclick = tdCcomes.recordset.moveprevious ();
if (tdccomposers.recordset.bof)
tdccomposers.recordset.movefirst ();>
<อินพุต id = cmdnavnext type = button value =>
onclick = tdCcomes.recordset.movenext ();
if (tdccomposers.recordset.eof)
tdccomposers.recordset.movelast ();>;
<อินพุต id = cmdnavlast type = button value = >>
onclick = tdCcomes.recordset.movelast ()>
นอกจากนี้ยังสามารถใช้เช่นนี้:
<ภาษาสคริปต์ = vbscript>
สำหรับแต่ละ objfld ใน rsattendees.fields
document.write (ชื่อฟิลด์คือ & objfld.name & <br>)
document.write (ค่าฟิลด์คือ & objfld.value & <br>)
ต่อไป
</script>
การเพิ่มและการลบบันทึกคือ: orcordset.addnew () และ orcordset.delete ()
ขั้นตอนที่ 3: ตอบสนองต่อเหตุการณ์ข้อมูลต่าง ๆ (รูปแบบเหตุการณ์)
วิธีการประมวลผลที่สอดคล้องกันหลังจากการเปลี่ยนแปลงข้อมูล?
วิธีการที่ให้ไว้ใน MSDN มีดังนี้:
<script for = cboSort (ชื่อแหล่งข้อมูล) เหตุการณ์ = onChange (ชื่อเหตุการณ์)>
-
</script>
นี่คือรายการชื่อเหตุการณ์:
Event Bubbles แอปพลิเคชันที่ยกเลิกได้ที่จะแนะนำในเวอร์ชัน Internet Explorer
onbeforeupdate องค์ประกอบที่แท้จริงของ True True 4.0
onafterupdate องค์ประกอบที่ถูกผูกไว้จริงจริง 4.0
Onrowenter True False DSO 4.0
Onrowexit True True DSO 4.0
OnBeforeunload False False Window 4.0
ondataavailable True False DSO 4.0
OnDatasetComplete True False DSO 4.0
ondatasetchanged True False DSO 4.0
onerRorUpdate องค์ประกอบจริงที่แท้จริงของจริง 4.0
OnReadyStateChange True False DSO 4.0
Oncellchange จริงเท็จ DSO 5.0
OnRowsInSerted True False DSO 5.0
OnrowsDelete True False DSO 5.0
แล้วล่ะ?
ฉันคิดว่า http://msdn.microsoft.com/workshop/samples/author/databind/dbevts.htm เป็นตัวอย่างที่ค่อนข้างครอบคลุมของแอปพลิเคชัน หากคุณศึกษาอย่างรอบคอบคุณจะได้รับบางสิ่งบางอย่าง
มีตัวอย่างมากมายของการใช้การเชื่อมโยงข้อมูลเพื่อใช้การเพจบนอินเทอร์เน็ต ในความเป็นจริงการเชื่อมโยงข้อมูลสามารถทำสิ่งต่าง ๆ ได้มากขึ้นใช่ไหม? ควรมีแอพพลิเคชั่นที่มีขนาดใหญ่มากในไคลเอนต์ที่สมบูรณ์เช่นการสร้างดาต้ากริดที่ซับซ้อนมาก
สิ่งที่ฉันต้องการเข้าใจเพิ่มเติมในขณะนี้คือวิธีการซิงโครไนซ์กับฝั่งเซิร์ฟเวอร์ได้อย่างง่ายดายเนื่องจากการเชื่อมโยงข้อมูลของไคลเอนต์ไม่มีผลกระทบต่อฝั่งเซิร์ฟเวอร์ (คุณสามารถสร้างแหล่งข้อมูลจากฝั่งเซิร์ฟเวอร์ แต่การทำงานของไคลเอนต์จะไม่กลับไปที่เซิร์ฟเวอร์โดยอัตโนมัติ) MSDN กล่าวว่า RDS นั้นโอเค แต่วิธีนี้จะซุ่มซ่ามและไม่ปลอดภัยเกินไป