Presentation is loading. Please wait.

Presentation is loading. Please wait.

Tips, Trick and Techniques for ASP Developers Atlanta ASP User Group Don Draper Draper Consulting, Inc.

Similar presentations


Presentation on theme: "Tips, Trick and Techniques for ASP Developers Atlanta ASP User Group Don Draper Draper Consulting, Inc."— Presentation transcript:

1 Tips, Trick and Techniques for ASP Developers Atlanta ASP User Group Don Draper Draper Consulting, Inc. Don@draperconsulting.com http://www.draperconsulting.com

2 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com2 Topics Transact-SQL Techniques Handling Expired Session Techniques Background Images in Tables JavaScript Tips The Response Object Understanding HTTP Headers

3 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com3 Transact-SQL Techniques

4 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com4 Transact-SQL, Technique #1 Ad-Hoc WHERE Clause Problem: User can enter any selection criteria in multiple fields for ad-hoc query, but data source is a stored procedure. Solution: WHERE (col1 = @arg1 OR @arg1 is null) AND (col2 like @arg2 OR @arg2 is null) AND (col3 like @arg3 OR @arg3 is null )

5 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com5 Transact-SQL, Technique #1 Ad-Hoc WHERE Clause In ASP Code… –Make sure empty parameters are passed as nulls if parm = empty then parm = null –Can use Parameter Object Set param1 = cmd.CreateParameter ("city", adVarChar,adParamInput,15,city) Set param2 = cmd.CreateParameter ("company", adVarChar, adParamInput, 40, company) cmd.Parameters.Append param1

6 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com6 Transact-SQL, Technique #1 Ad-Hoc WHERE Clause In ASP Code… –Can use Array function to pass params city = request("city") if city = empty then city = Null ‘ pass null to sp if not needed Set rs = cmd.Execute (recs, Array( company, city ) )

7 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com7 Transact-SQL, Technique #1 Ad-Hoc WHERE Clause In Stored Procedure… – default arguments to null @companyname varchar(40) = null, … – use “Is null”..NOT “= null” Good: WHERE (company like @company OR @company is null) Bad: WHERE (company like @company OR @company = null)

8 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com8 Transact-SQL, Technique #2 Ad-Hoc ORDER BY Clause Problem: User can click on any header in table and the result set is reordered for that column. However, the data source is a stored procedure. How can I alter ORDER BY clause? Solution #1: Use Exec() –lose precompiled advantage of stored proce Solution #2: Use ANSI CASE (better) –Retain precompiled advantage of stored proc

9 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com9 Transact-SQL, Technique #2 Ad-Hoc ORDER BY Clause Sample Code for Stored Procedure ORDER BY CASE @sort  passed in a argument to procedure WHEN 'id' THEN CAST (CustomerID as varchar(20)) WHEN 'companyname' THEN companyname WHEN 'city' THEN city ELSE CAST (CustomerID as varchar(20)) END

10 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com10 Handling Expired Sessions

11 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com11 Handling Expired Sessions We use sessions to … –Maintain state information –Maintain user specific data across pages –Provide additional security…and more Sessions end by –Session.Abandon –Session expires due to period of inactivity

12 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com12 Handling Expired Sessions When session expires –Need user to start over login again start new session & re-establish session data Techniques to check for current session –Check for session value at top of page –Let session events handle it for you!

13 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com13 Handling Expired Sessions Typical Technique: –Check for session variable at the top of each page If session(“userid”) = “” then redirect(“login.asp”) End if

14 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com14 Handling Expired Sessions Suggested Technique: –Let a session event handle it for you –In Global.ASA file Session_OnStart Check referring URL Redirect/Transfer if not coming from your start (login?) page fromURL = Request.ServerVariables("URL") if InStr(lcase(fromURL), "login.asp") = 0 then Response.Redirect("expired_page.asp") end if

15 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com15 Handling Expired Sessions Watch out for… –login page is ASP page Session already started before login –Use –Use Session.Abandon to kill session –other pages that start session before login Same as above –use NT Performance Monitor to watch session count when testing

16 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com16 Background Images in Tables

17 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com17 Background Images in Tables Table background images offer an easy way to place other elements over an image. Cell can be used for positioning.

18 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com18 Background Images in Tables Problem: Background images can be defined as an attribute of a TABLE tag. This permits elements such as text, fields and more to be place over an image. However, Netscape renders the image starting in each cell, even if defined at the TABLE level!

19 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com19 Background Images in Tables..

20 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com20 Background Images in Tables Netscape renders the image inside each cell, even if defined at the TABLE level. As you can see, this is not acceptable!

21 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com21 Background Images in Tables Solution: Use two nested tables –Outer table gets one empty cell to hold inner table background attribute defined in Table tag –Inner table background attribute in Table tag but with empty value ( background=“” ) Use cells to position elements over image

22 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com22 Client-Side JavaScript

23 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com23 Client-Side JavaScript Two common uses… –Place cursor in appropriate form field –Client-side form validation Place cursor in appropriate form field document.formname.fieldname.focus();

24 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com24 Client-Side JavaScript Place cursor in UID field if empty…otherwise place in password field <!-- hide from old browsers function set_focus( ) { if (document.forms[0].as_userid.value.length > 0) document.forms[0].as_password.focus(); else document.forms[0].as_userid.focus(); } // -->

25 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com25 Client-Side JavaScript Use // to comment out closing HTML comments <!-- function myfunction( ) { } // -->  the js comment (//) prevents errors in some browsers

26 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com26 Client-Side JavaScript FormChek.js - Form Validation Library Free, Public Domain Library Over 60K of validation routines by Eric Krock, NS –Basic data validation routines –Reformat data –Prompt user –Interactively check field contents –Credit card validation

27 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com27 Understanding HTTP Headers

28 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com28 Understanding HTTP Headers? Request Headers (from browser) –GET- hyperlink request –POST- FORM request (default) Response Headers (from server or ASP code) –Content-Type:- defines type of content –Location: - redirect browsers to URL –Set-Cookie:- stores data on browser

29 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com29 Pages / ASP FunctionA( ) FunctionB( ) FunctionC(a).. Pages / ASP FunctionA( ) FunctionB( ) FunctionC(a).. Request & Response IIS / ASP (server) Web browser HTTP Request HTTP Response GET URL HTTP/1.0 HTML page or binary content (PDF) prefixed with HTTP Response Headers

30 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com30 HTTP Response Headers My Web Page! My Web Page! HTTP/1.0 200 OK Server: Apache/1.1.1 Content-Type: text/html Content-Length: 31078 HTML Page HTTP Headers

31 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com31 HTTP Header Format Each header is on its own line with no blank lines between them The last header is followed by a blank line and then the content

32 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com32 HTTP Headers My Web Page! My Web Page! HTTP/1.0 200 OK Server: Apache/1.1.1 Content-Type: text/html Content-Length: text/html HTML Page Headers added by Web Server Headers you can control One blank line separates headers from content

33 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com33 Common HTTP Response Headers Location: (redirection) Content-Type: (MIME type of content) Content-Length: (length of content) Set-Cookie: (save data on browser)

34 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com34 The Response Object

35 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com35 The Response Object Collections –Cookies Properties –Buffer –CacheControl –CharSet –ContentType –Expires –ExpiresAbsolute –IsClientConnected –Status Methods –AddHeader –AppendToLog –BinaryWrite –Clear –End –Flush –PICS –Redirect –Write

36 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com36 The Response Object Collections – Properties –Buffer – Methods –AddHeader – –Clear –End –Flush – –Redirect –

37 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com37 Tips for Using Flush and End Response.Flush –Flush after page titles but before long database queries to increase perception of speed –Output continue to fill buffer after Flush is used –Response.Buffer must be TRUE Response.End –Stops further output to the browser –Use Clear to remove output prior to End

38 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com38 Tips for Using Clear and Redirect Response.Clear –Clear page content since the last Flush or Clear; headers are still sent –Useful to display only error message instead of standard page content Response.Redirect –Sends 302 Object Moved response error –Buffer must be true if content already sent –Don’t need Clear prior to Redirect

39 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com39 Redirect(“file2.asp”) Request & Response Redirect Requires 2 Round Trips to Server IIS / ASP (server) Web browser Request: GET /file1.asp HTTP/1.0 Response: 302 Object Moved Location: file2.asp Request: GET /file2.asp HTTP/1.0 File1.asp File2.asp Response: 200 Ok HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Wed, 16 Feb 2000 10:26:53 GMT Content-Length: 218 Content-Type: text/html

40 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com40 Server.Transfer(“File2.ASP”) Request & Response Server.Transfer Requires Only 1 Trip to Server (ASP 3.0) IIS / ASP 3.0 (server) Web browser Request: GET /file1.asp HTTP/1.0 File1.asp File2.asp Response: 200 Ok HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Wed, 16 Feb 2000 10:26:53 GMT Content-Length: 218 Content-Type: text/html Server send back different file

41 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com41 More Information Ostrosoft Internet Tools –http://www.ostrosoft.comhttp://www.ostrosoft.com HTTP Protocol and Headers –http://www.w3.org/Protocols/rfc2616/rfc2616.htmlhttp://www.w3.org/Protocols/rfc2616/rfc2616.html FormChek.js –Look in search engines –http://www.draperconsulting.com/downloads/formchek.zip

42 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com42 More Information Wrox Books –Professional Active Server Pages 2.0 (3.0) –ASP 2.0 (2.1) Programmers Reference –ADO 2.0 (2.5) Programmers Reference –http://www.wrox.comhttp://www.wrox.com –http://webdev.wrox.co.uk/books/BookList.asp

43 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com43 Questions?

44 February 10, 2000 Draper Consulting, Inc. http://www.draperconsulting.com44 Presentation Survey Results


Download ppt "Tips, Trick and Techniques for ASP Developers Atlanta ASP User Group Don Draper Draper Consulting, Inc."

Similar presentations


Ads by Google