![]() ![]() ![]() ![]() |
|||||
|
|||||
¼Ó¥D ¯¸°È¤Hû ¯¸ªø ![]()
![]() ![]() ![]() |
ASP À³¥Îµ{¦¡©M¤u§@¶¥¬qª«¥ó´£¨Ñ±N¸ê®Æ§Ö¨ú¦b°O¾ÐÅ餤ªºÂ²«K®e¾¹¡C±z¥i¥H±N¸ê®Æ«ü¬£¨ìÀ³¥Îµ{¦¡©M¤u§@¶¥¬qª«¥ó¤¤¡A³o¨Ç¸ê®Æ¦b HTTP ©I¥s¤§¶¡±N·|¦s¯d¦b°O¾ÐÅ餤¡C¤u§@¶¥¬q¸ê®Æ¬O«ö¨Ï¥ÎªÌ¦s©ñªº¡A¦ÓÀ³¥Îµ{¦¡¸ê®Æ¦b©Ò¦³¨Ï¥ÎªÌ¤§¶¡¦@¥Î¡C ¤°»ò®ÉÔ±N¸ê®Æ¸ü¤J¨ìÀ³¥Îµ{¦¡©Î¤u§@¶¥¬q¤¤©O¡H³q±`¡A¸ê®Æ¬O¦b±Ò°ÊÀ³¥Îµ{¦¡©Î¤u§@¶¥¬q®É¸ü¤J¡Cn¦bÀ³¥Îµ{¦¡©Î¤u§@¶¥¬q±Ò°Êµ{§Ç¤¤¸ü¤J¸ê®Æ¡AÀ³±N¾A·íªºµ{¦¡½X¤À§O·s¼W¨ì Application_OnStart() ©Î Session_OnStart() ¤¤¡C³o¨Ç¨ç¼ÆÀ³¦ì©ó Global.asa ¤¤¡A¦pªG¨S¦³¡A¥i¥H·s¼W³o¨Ç¨ç¼Æ¡C±z¤]¥i¥H¦b²Ä¤@¦¸¦³»Ýn®É¸ü¤J¸Ó¸ê®Æ¡Cn¶i¦æ³o¶µ¤u§@¡A¦b ASP µe±¤¤·s¼W¤@¨Çµ{¦¡½X (©Î½s¼g¤@Ó¥i«½Æ¨Ï¥Îªº script ¨ç¼Æ)¡A¥HÀˬd¸ê®Æ¬O§_¦s¦b¡A¦pªG¤£¦s¦b¡A´N¸ü¤J¸ê®Æ¡C³o¬O¤@ӶDzΪº®Ä¯à§Þ³N¡AºÙ¬°¡u´k©Êµû¦ô¡v - ¦b±zª¾¹D»Ýn¬Y¤@ÓªF¦è¤§«e¤£¥[¥Hpºâ¡C¨Ò¦p¡G <% Function GetEmploymentStatusList Dim d d = Application(?EmploymentStatusList?) If d = ?? Then ' FetchEmploymentStatusList function (not shown) ' fetches data from DB, returns an Array d = FetchEmploymentStatusList() Application?EmploymentStatusList?) = d End If GetEmploymentStatusList = d End Function %> ±z¥i¥H¬°©Ò»Ýªº¨CÓ¸ê®Æ¶ô½s¼gÃþ¦üªº¨ç¼Æ¡C À³¸Ó¥H¤°»ò®æ¦¡¦s©ñ¸ê®Æ¡H¥i¥H¦s©ñ¥ô¦ó§ÎºA¡A¦]¬°©Ò¦³ script ÅܼƳ£¬OÅÜÅé¡C¨Ò¦p¡A±z¥i¥H¦s©ñ¦r¦ê¡B¾ã¼Æ©Î°}¦C¡C³q±`¡A±z±N¥H³o¨ÇÅÜÅéÃþ«¬¤§¤@¦s©ñ ADO °O¿ý¶°ªº¤º®e¡Cn±q ADO °O¿ý¶°Àò¨ú¸ê®Æ¡A±z¥i¥H¤â°Ê±N¸ê®Æ½Æ»s¨ì VBScript ÅܼơA¤@¦¸¤@ÓÄæ¦ì¡C¨Ï¥Î¨ä¤¤¤@Ó ADO °O¿ý¶°«ùÄò¨ç¼Æ GetRows()¡BGetString() ©Î Save() (ADO 2.5) ±NÅܱo§ó§Ö¥B§ó®e©ö¡C§¹¾ãªº¸Ô²Ó¸ê®Æ¶W¥X¥»¤å½d³ò¡A¦ý¥H¤Uªº¨ç¼ÆÁ|¨Ò»¡©ú¨Ï¥Î GetRows() ¶Ç¦^°O¿ý¶°¸ê®Æªº¤@Ó°}¦C¡G ' Get Recordset, return as an Array Function FetchEmploymentStatusList Dim rs Set rs = CreateObject(?ADODB.Recordset?) rs.Open ?select StatusName, StatusID from EmployeeStatus?, _ ?dsn=employees;uid=sa;pwd=;? FetchEmploymentStatusList = rs.GetRows() ? Return data as an Array rs.Close Set rs = Nothing End Function ¹ï¤W±Á|¨Ò°µ§ó¶i¤@¨B§ï¶i¡A¥i¥H±N HTML §Ö¨ú¬°²M³æ¡A¦Ó¤£¬O°}¦C¡C¤U±¬O²³æªº½d¨Ò¡G ' Get Recordset, return as HTML Option list Function FetchEmploymentStatusList Dim rs, fldName, s Set rs = CreateObject(?ADODB.Recordset?) rs.Open ?select StatusName, StatusID from EmployeeStatus?, _ ?dsn=employees;uid=sa;pwd=;? s = ?<select name=??EmploymentStatus??>? & vbCrLf Set fldName = rs.Fields(?StatusName?) ' ADO Field Binding Do Until rs.EOF ' Next line violates Don't Do String Concats, ' but it's OK because we are building a cache s = s & ? <option>? & fldName & ?</option>? & vbCrLf rs.MoveNext Loop s = s & ?</select>? & vbCrLf rs.Close Set rs = Nothing ' See Release Early FetchEmploymentStatusList = s ' Return data as a String End Function ¡u¦b¾A·íªº±ø¥ó¤U¡v¡A¥i¥H±N ADO °O¿ý¶°¥»¨§Ö¨ú¦bÀ³¥Îµ{¦¡©Î¤u§@¶¥¬q»â°ì¤¤¡C¦³¨âÂInª`·Nªº¡G ¥²¶·±N ADO ¼Ð°O¬°µL¨î°õ¦æºü ¥²¶·¨Ï¥Î¤¤Â_³s½uªº°O¿ý¶°¡C ¦pªG¤£¯à«OÃÒº¡¨¬³o¨âӻݨD¡A«h¤£n§Ö¨ú ADO °O¿ý¶°¡C¦b¤U±ªº¡u«D±Ó±¶¤¸¥ó¡v©M¡u¤£n§Ö¨ú³s½u¡v³Z¬¤¤¡A§Ú̱N°Q½×±N COM ª«¥ó¦s©ñ¦bÀ³¥Îµ{¦¡©Î¤u§@¶¥¬q»â°ì¤¤ªº¦MÀI©Ê¡C ·í±z±N¸ê®Æ¦s©ñ¦bÀ³¥Îµ{¦¡©Î¤u§@¶¥¬q»â°ì®É¡A¸ê®Æ±N¦s¯d¦b¨ºùØ¡Aª½¨ì±z¥Hµ{¦¡§ïÅÜ¥¦¡B¤u§@¶¥¬q¹L´Á¡A©Î Web À³¥Îµ{¦¡«·s±Ò°Ê¬°¤î¡C¦pªG¸ê®Æ»Ýn§ó·s«ç»ò¿ì¡Hn¤â°Ê±j¨î§ó·sÀ³¥Îµ{¦¡¸ê®Æ¡A±z¥i¥H©I¥s¥u¦³ºÞ²zû¤~¥i¦s¨úªº ASP µe±¨Ó§ó·s¸ê®Æ¡C©ÎªÌ¡A±z¥i¥H³z¹L¨ç¼Æ©w´Á¦Û°Ê§ó·s¸ê®Æ¡C¤U¦C½d¨Ò¦s©ñ±a¦³§Ö¨ú¸ê®Æªº®É¶¡ÂW°O¡A¨Ã¦b¤@¬q®É¶¡¶¡¹j¤§«á§ó·s¸ê®Æ¡C <% ' error handing not shown... Const UPDATE_INTERVAL = 300 ' Refresh interval, in seconds ' Function to return the employment status list Function GetEmploymentStatusList UpdateEmploymentStatus GetEmploymentStatusList = Application(?EmploymentStatusList?) End Function ' Periodically update the cached data Sub UpdateEmploymentStatusList Dim d, strLastUpdate strLastUpdate = Application(?LastUpdate?) If (strLastUpdate = ??) Or _ (UPDATE_INTERVAL < DateDiff(?s?, strLastUpdate, Now)) Then ' Note: two or more calls might get in here. This is okay and will simply ' result in a few unnecessary fetches (there is a workaround for this) ' FetchEmploymentStatusList function (not shown) ' fetches data from DB, returns an Array d = FetchEmploymentStatusList() ' Update the Application object. Use Application.Lock() ' to ensure consistent data Application.Lock Application(?EmploymentStatusList?) = Events Application(?LastUpdate?) = CStr(Now) Application.Unlock End If End Sub ½Ð°Ñ¾\ World's Fastest ListBox with Application Data ¤¤ªº¥t¤@Ó½d¨Ò¡C ½Ðª`·N¦b¤u§@¶¥¬q©ÎÀ³¥Îµ{¦¡ª«¥ó¤¤§Ö¨ú¤j«¬°}¦Cªº°µªk¤£¬O«Ü¦n¡C¦b¦s¨ú°}¦Cªº¥ô¦ó¤¸¥ó¤§«e¡Ascript »y¨¥ªº»y¸qn¨D¥²¶·¼È®É½Æ»s¾ãÓ°}¦C¡C¨Ò¦p¡A¦pªG±N¥Ñ¦r¦ê²Õ¦¨ªº¦³ 100,000 Ó¤¸¥óªº°}¦C (¸Ó°}¦C±N¬ü°ê¶l»¼°Ï¸¹¹ïÀ³¨ì·í¦aªº®ð¶H¯¸) §Ö¨ú¦bÀ³¥Îµ{¦¡ª«¥ó¤¤¡AASP ¥²¶·¥ý±N©Ò¦³ªº 100,000 Ó®ð¶H¯¸½Æ»s¨ì¼È®É°}¦C¤¤¡AµM«á¤~¯à´£¨ú¤@Ó¦r¦ê¡C¦b³oºØ±¡ªp¤U¡A¥Î¦Ûq¤èªk«Ø¥ß¤@Ó¦Ûq¤¸¥ó¨Ó¦s©ñ°Ï®ð¶H¯¸ - ©Î¨Ï¥Î¦r¨å¤¸¥ó·|§ó¦n¡C ¥t¤@Ó«ØÄ³¬O¡A¤£n±NÀ¦¨à»P¬~¾þ¤ô¤@°_˱¼¡G°}¦C¯à§Ö³t¬d´M©M¦s©ñ¦b°O¾ÐÅ餤¾Fªñªº¥D¯Á¤ÞÁä/¸ê®Æ¹ï¡C¯Á¤Þ¦r¨å¤ñ¯Á¤Þ°}¦CnºC±o¦h¡CÀ³°w¹ï±zªº¹ê»Ú±¡ªp¡A¿ï¾Ü´£¨Ñ³Ì¨Î®Ä¯àªº¸ê®Æµ²ºc¡C
¥»½g¤å³¹µoªí©ó2000-09-09 00:00
|