แนะนำ: ASP Tutorial: เคล็ดลับสำหรับ ASP ในการสร้างพารามิเตอร์หลอก สองวันที่ผ่านมาฉันกำลังทำงานกับเครื่องมือค้นหาขององค์กรในสถานที่และพบว่าบางไซต์สามารถเชื่อมโยงไปยังเนื้อหาของไซต์ได้ - ฉันดูมันแปลก ๆ และพบว่ามันเชื่อมโยงตามกฎการกำหนดหมายเลขอัตโนมัติของ ID ฐานข้อมูล ~~ ฉันทำสิ่งต่อไปนี้ในเวลาว่างของฉันโดยหวังว่ามันจะเป็นประโยชน์กับทุกคนในการเขียนโปรแกรม ASP ในอนาคต! % '' // สร้างจำนวนตัวเลขสุ่มที่ระบุ '' // คุณยังสามารถใช้ GUID
เพื่อหลีกเลี่ยงปัญหาการบำรุงรักษาที่เกิดจากการผสมโปรแกรม ASP และรหัส HTML บทความนี้แนะนำวิธีการใช้เทมเพลตเพื่อแยกโปรแกรมและหน้าเพื่อทำให้การเขียนโปรแกรมง่ายขึ้น
เมื่อใช้ ASP เพื่อสร้างเว็บไซต์มักจะมีสถานการณ์ที่รหัสโปรแกรมและรหัส HTML ถูกผสมในไฟล์ ASP มีข้อเสียมากมายในการทำเช่นนี้:
1. ไม่ต้องพูดถึงว่าเมื่อการเขียนโปรแกรมคุณต้องออกแบบและจัดเรียงเค้าโครงหน้าซึ่งจะทำให้รหัสสับสนและยากที่จะเข้าใจและผิดปกติ
2. เมื่อคุณต้องการเปลี่ยนลักษณะที่ปรากฏของหน้าคุณไม่เพียง แต่ต้องเปลี่ยนส่วน HTML แต่ยังต้องเปลี่ยนรหัส ASP ซึ่งไม่ง่ายต่อการบำรุงรักษา
ดังนั้นเราจะหลีกเลี่ยงปัญหาเหล่านี้ได้อย่างไร
คำตอบคือการใช้ไฟล์เทมเพลตเพื่อแยกรหัส ASP และหน้า HTML และปัญหาทั้งหมดจะได้รับการแก้ไข การใช้เทมเพลตมีประโยชน์ดังต่อไปนี้:
1. การปรากฏตัวของไซต์ทั้งหมดสามารถแทนที่ได้ในเวลาอันสั้น
2. เปิดใช้งานโปรแกรมเมอร์ในการเขียนโปรแกรมนามธรรมโดยไม่ต้องแตะรหัส HTML
3. เทมเพลตก่อนหน้านี้สามารถนำกลับมาใช้ใหม่ได้
โปรแกรมที่ใช้ PHP จะรู้ว่า PHP มีโปรแกรมเทมเพลต (FastTemplate) ปัญหาปัจจุบันคือวิธีการใช้ฟังก์ชั่นที่คล้ายกันใน ASP
ASP ของ Microsoft มาพร้อมกับสองสคริปต์: VBScript และ JScript พวกเขาทั้งหมดมาพร้อมกับวัตถุนิพจน์ทั่วไป (regexp) การใช้วัตถุสตริงและวัตถุ regexp คุณสามารถใช้ฟังก์ชั่นเทมเพลตได้อย่างง่ายดาย Mu Feng ใช้สิ่งนี้ในการเขียนไฟล์ template.jscript.inc และเนื้อหาของไฟล์นี้จะแนบกับส่วนท้ายของบทความ ผู้อ่านที่มีความสามารถสามารถปรับปรุงตามความต้องการของพวกเขา
นี่คือคำอธิบายของวิธีการใช้งาน เนื่องจากไฟล์นี้เขียนด้วย JScript (แน่นอนว่ามันง่ายที่จะแปลงเป็น VBScript) ภาษาสคริปต์เริ่มต้นควรตั้งค่าเป็น JScript นั่นคือบรรทัดแรกของโปรแกรม ASP ควรเป็น: %@language = JScript %และไฟล์โปรแกรมแม่แบบรวมอยู่:!
ก่อนอื่นให้แนะนำการใช้คลาสเทมเพลต:
1. สร้างวัตถุเทมเพลต: เทมเพลต (พา ธ )
พารามิเตอร์: พา ธ (ประเภทสตริง) พา ธ การจัดเก็บไฟล์เทมเพลต HTML
ใช้ตัวดำเนินการใหม่เพื่อสร้างวัตถุเทมเพลต
ตัวอย่าง:
vartpl = newTemplate (c: // แม่แบบ);
ในโปรแกรมคุณสามารถใช้ tpl.tplpath เพื่อรับเส้นทางเทมเพลตหรือคุณสามารถใช้ tpl.tplpath เพื่อเปลี่ยนเส้นทางเทมเพลต
ชอบ:
tpl.tplpath = d: // เทมเพลต;
2. โหลดไฟล์เทมเพลต: template.load (ชื่อ, ไฟล์)
พารามิเตอร์: ชื่อ (ประเภทสตริง) เป็นชื่อตัวแปรเทมเพลต
ชื่อไฟล์ (ประเภทสตริง) ชื่อเทมเพลต ไฟล์นี้ถูกเก็บไว้ในเส้นทางเทมเพลต HTML
อ่านไฟล์ไฟล์ลงในชื่อตัวแปรเทมเพลต
ตัวอย่าง:
tpl.load (หลัก, test.htm);
ในเวลานี้ตัวแปรเทมเพลตหลักมีเนื้อหาของการทดสอบไฟล์ htm
คุณสามารถใช้ tpl.main เพื่อเข้าถึงตัวแปรเทมเพลตหลัก
ตัวอย่าง:
%= tpl.main%
เนื้อหาของไฟล์ test.htm ที่คุณเพิ่งอ่านจะปรากฏขึ้น
3. Template Split: Template.split (ชื่อ)
พารามิเตอร์: ชื่อ (ประเภทสตริง) เป็นชื่อตัวแปรเทมเพลต
สลายตัวตามชื่อย่อยในชื่อ
ตัวอย่าง:
ก่อนอื่นสมมติว่าเนื้อหา test.htm ในตัวอย่างด้านบนคือ:
-
นี่คือเทมเพลตหลัก ถัดไปคือ:!#tpldefsubsub-template sub-template และ
! #tpldefthird แม่แบบ ! #tplendthird
! #tplendsub
-
ดังนั้น:
tpl.split (หลัก);
หลังจากดำเนินการตัวแปรเทมเพลตใหม่ย่อยและที่สามจะถูกสร้างขึ้นและเนื้อหาของพวกเขาคือคำสั่งระหว่าง! #tpldefsub และ! #tplendsub
ยิ่งกว่านั้นเนื้อหาของตัวแปรเทมเพลตหลักก็จะเปลี่ยนไปเช่นกัน:
เนื้อหาของ tpl.main คือ: นี่คือเทมเพลตหลัก ถัดไปคือ {sub}
เนื้อหาของ tpl.sub คือ: sub-template และ {Third}
เนื้อหาของ tpl.third คือ: เทมเพลตที่สาม
บล็อกคำสั่งที่กำหนดโดย TPLDEF และ TPLEND นั้นเต็มไปด้วยจำนวนมาก
4. การประมวลผลแม่แบบ: เทมเพลต Parse (ชื่อ)
พารามิเตอร์: ชื่อ (ประเภทสตริง) เป็นตัวแปรเทมเพลต
แทนที่สตริงในเทมเพลตด้วยการจัดฟันหยิกด้วยเนื้อหาของตัวแปรเทมเพลตของชื่อเดียวกัน
ตัวอย่าง: ดำเนินการต่อด้วยตัวอย่างก่อนหน้า
%= tpl.parse (หลัก)%
แสดง: นี่คือเทมเพลตหลัก ถัดไปคือเทมเพลตย่อยย่อยและ {สาม}
ดังที่เห็นได้จากตัวอย่างการแยกวิเคราะห์จะแทนที่ตัวแปร {sub} ในเทมเพลตหลักเท่านั้นและไม่สามารถแทนที่ด้วยวิธีที่ซ้อนกันได้ สิ่งนี้ได้รับการออกแบบโดยเจตนาเพื่อเพิ่มความยืดหยุ่นของโปรแกรม แล้วคุณจะแสดงเทมเพลตหลักเต็มรูปแบบได้อย่างไร?
ตัวอย่าง:
tpl.sub = tpl.parse (sub); // กระบวนการแรกตัวแปรย่อยจากนั้นประมวลผลตัวแปรหลัก
Response.write (tpl.parse (หลัก));
5. ปรับแต่งตัวแปรเทมเพลต
การปรับแต่งตัวแปรเทมเพลตนั้นง่ายคุณสามารถใช้คำสั่งการกำหนดโดยตรงเพื่อกำหนดและแก้ไขตัวแปรใด ๆ :
ตัวอย่าง:
tpl.hahaha = นี่เป็นตัวแปรที่กำหนดเอง;
tpl.third = เปลี่ยนตัวแปรที่สามในเทมเพลตดั้งเดิม
ควรสังเกตว่าเนื่องจาก JScript เป็นกรณีที่มีความอ่อนไหวคุณต้องให้ความสนใจกับการสะกดคำของตัวพิมพ์ใหญ่บนและล่าง โดยทั่วไปแล้วตัวแปรเทมเพลตที่กำหนดไว้ในเทมเพลต HTML อยู่ในตัวพิมพ์ใหญ่
นอกจากนี้ตัวแปร TPLPATH, โหลด, แยกวิเคราะห์และตัวแปรแยกที่ใช้ในเทมเพลตถูกนำมาใช้ภายใน อย่าใช้เช่นกันมิฉะนั้นโปรแกรมอาจมีข้อยกเว้น
นี่คือตัวอย่างที่สมบูรณ์:
ขั้นตอนที่ 1: สร้างไฟล์เทมเพลต HTML ก่อน
ที่นี่ก่อนอื่นเราจะอธิบายองค์ประกอบของไฟล์เทมเพลต HTML ก่อนอื่นแทบจะไม่แตกต่างจากไฟล์ HTML ทั่วไปยกเว้นว่ามีแท็กอีกสองสามแท็ก
มีเครื่องหมายสองประเภทสำหรับเทมเพลต ก่อนอื่นดูตัวอย่าง:
test.htm
-! ชื่อไฟล์: test.htm
HTML
ตัวอย่างชื่อ/ชื่อเรื่อง
ส่วนหัว
/ส่วนหัว
ร่างกาย
นี่คือตัวอย่างตาราง
โต๊ะ
!#tplendmaxx10! #tplendmaxx
! ... โปรดทราบว่ามีการใช้เคล็ดลับที่นี่ซึ่งก็คือการกำหนดตัวแปรเทมเพลต Maxx และกำหนดค่าเป็น 10
TR
TDX/TDTDX กำลังสอง/TD
/tr
! #tpldefrow
TR
td {x}/tdtd {xx}/td
/tr
! #tplendrow
/โต๊ะ
มี {count} แถวของข้อมูลด้านบน
/ร่างกาย
/html
-
ดังที่เห็นได้จากด้านบนสัญลักษณ์เช่น {x}, {xx}, {count} เป็นตัวแปรเทมเพลตคำจำกัดความ พวกเขาจะถูกแทนที่ในโปรแกรม ASP
และ! #tpldefrow ... !#tplendrow คือการกำหนดแถวบล็อกคำสั่ง คุณสามารถทำซ้ำบล็อกแถวหลายครั้งในโปรแกรม ASP
ขั้นตอนที่ 2: ออกแบบโปรแกรม ASP
test.asp
-%@language = jscript%
!#include file = template.jscript.inc
-
vartpl = newTemplate (c: // inetpub // wwwroot);
varstr =;
Vari;
tpl.load (หลัก, test.htm);
tpl.split (หลัก);
tpl.count = 0;
สำหรับ (i = 1; i = tpl.maxx; i ++) // tpl.maxx ถูกกำหนดเป็น 10 ในเทมเพลต
-
tpl.x = i;
tpl.xx = i*i;
str+= tpl.parse (แถว);
tpl.count ++;
-
tpl.row = str;
tpl.maxx =; // ล้างตัวแปรเทมเพลตนี้เพื่อหลีกเลี่ยงการแสดง
-
%= tpl.parse (หลัก)%
-
โปรแกรมด้านบนจะแสดงตารางสี่เหลี่ยม 1 ถึง 10
โดยปกติเมื่อใช้เทมเพลตเพียงเพิ่มคำสั่งที่แสดงหน้าไปยังบรรทัดสุดท้าย ดังนั้นโปรแกรมทั้งหมดจึงชัดเจนมาก ในเวลานี้เพียงแก้ไขไฟล์เทมเพลตเพื่อเปลี่ยนลักษณะที่ปรากฏของทั้งหน้า
สำหรับไฟล์เทมเพลตอาจเป็นไฟล์ใด ๆ เช่นไฟล์ HTML ไฟล์ ASP หรือแม้กระทั่งโปรแกรมเอง! และเทมเพลตหลายตัวสามารถโหลดได้ในโปรแกรมเพื่อทำงานร่วมกันซึ่งไม่เพียง แต่ให้ความยืดหยุ่นที่ดี แต่ยังช่วยลดความสัมพันธ์ระหว่างไฟล์เทมเพลตและโปรแกรม ASP
การใช้เทมเพลตที่ดีจะทำให้งานของคุณง่ายขึ้น
ไฟล์แนบ: โปรแกรมแหล่งที่มาของแม่แบบ
! ชื่อไฟล์: template.jscript.inc
-
-
/*Templateclass*/
/*ผู้เขียน:*/
/*วันที่: 6-09*/
-
// templateMethoddefine
functiontemplate_parse (ชื่อ)
-
ถ้า (นี่ [ชื่อ] == null)
กลับ;
varreg = newregexp ({(// w*)}, ig);
varstr = newstring (นี้ [ชื่อ]);
vararr = str.match (reg);
Vari;
ถ้า (arr! = null)
สำหรับ (i = 0; iarr.length; i ++)
-
key = arr.slice (1, -1);
reg = newregexp (arr, ig);
ถ้า (นี่ [คีย์]! = null)
str = str.replace (reg, [คีย์]);
-
returnstr;
-
functiontemplate_split (ชื่อ)
-
varlen = 0;
Vararr;
ถ้า (นี่ [ชื่อ] == null)
กลับ;
vartemplate_exp = newregexp (!#tpldef+(// w*)*((. | // n)*)!#tplend+// 1*, i);
ในขณะที่ (นี้ [ชื่อ] .Search (template_exp)! =-1)
-
arr = นี้ [ชื่อ]. -match (template_exp);
[arr [1} = arr [2];
[ชื่อ] = นี้ [ชื่อ]. retplace (template_exp, {+arr [1]+});
this.split (arr [1]);
-
-
functiontemplate_load (ชื่อ, ชื่อไฟล์)
-
varfso = newActivexObject (scripting.filesystemobject);
varfile = fso.buildpath (this.tplpath, ชื่อไฟล์);
if (fso.fileexists (ไฟล์))
-
varf = fso.opentextfile (ไฟล์, 1);
[ชื่อ] = f.readall ();
-
-
// Templateconstructor
FunctionTemplate (เส้นทาง)
-
//คุณสมบัติ
this.tplpath = เส้นทาง;
//วิธี
this.parse = template_parse;
this.split = template_split;
this.load = template_load;
-
-
แบ่งปัน: ASP Tutorial: ตัวอย่าง Ajax ง่ายๆ ASP Tutorial: ตัวอย่างง่ายๆเกี่ยวกับ AJAX INDEX.ASP: รหัสโปรแกรม HTML Head Meta HTTP-Equiv = เนื้อหาประเภทเนื้อหา = text/HTML; charset = gb2312 /titleajax แอปพลิเคชันง่าย ๆ /ชื่อภาษาสคริปต์ = javascript // สร้าง xmlhttprequest object object var Request = false; ลอง {อีกครั้ง