Just some things I would like to point out (I know I am always running under my own steam round here..)
1. A normal variables scope cannot be accessed via custom tags without using the caller scope and that can get complicated with nested tags. Using the request scope is a matter of global search and replace (application.rews >> request.rews). 2. If the data is of a "set-and-forget" nature (ie. no need to be updated by users), then you're just adding overhead by calling it from a database. Especially if you have to make this call to the database at the start of each request. That's my rationale -----Original Message----- From: [email protected] [mailto:[EMAIL PROTECTED] Behalf Of Andrew Scott Sent: Friday, 17 November 2006 3:54 PM To: [email protected] Subject: [cfaussie] Re: Application scope problem I agree with Dale, a normal variable scope and pull the information out of a database. On 11/17/06, Joel Cass <[EMAIL PROTECTED] > wrote: Hi, The application scope is useful for this kind of data (in moderation of course), but you should also minimise the number of writes you actually do to the application scope. Hopefully (though the code does not indicate this), you should have a check to see if the array doesn't already exist in the application scope before creating it (ie. NOT structKeyExists(application,"rews")). Otherwise, every request will be resetting your array and you'll end up with lots of gremlins when multiple users are hitting the application at the same time. Personally if it just a simple array that gets created at the start of each request then I might want to set it in the request scope. Horses for courses Joel -----Original Message----- From: [email protected] [mailto:[EMAIL PROTECTED] Behalf Of Dale Fraser Sent: Friday, 17 November 2006 3:33 PM To: [email protected] Subject: [cfaussie] Re: Application scope problem I wouldn't use application scope for this level of data. You do need to lock all references to application as it's shared so you need to ensure only one page is modifying it at a time. Regards Dale Fraser http://dale.fraser.id.au -----Original Message----- From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Matthew Sent: Friday, 17 November 2006 15:15 PM To: cfaussie Subject: [cfaussie] Application scope problem Hi guys, I think I'm getting a corrupt application scope problem. The CF error is: -------- The element at position 3 cannot be found. LINE 411 -------- LINE 411 is: -------- #application.rews.timePeriods[X].name# (it's in a loop so X would have been equal to 3). -------- Application.cfm code: -------- application.rews.locale = "en_US"; application.rews.timePeriods = ArrayNew(1); application.rews.timePeriods[1] = StructNew(); application.rews.timePeriods[1].name = "00:00-06:00"; application.rews.timePeriods [1].period.low = "00:00"; application.rews.timePeriods[1].period.high = "06:00"; application.rews.timePeriods[2] = StructNew(); application.rews.timePeriods [2].name = "06:00-08:00"; application.rews.timePeriods[2].period.low = "06:00"; application.rews.timePeriods[2].period.high = "08:00"; application.rews.timePeriods [3] = StructNew(); application.rews.timePeriods[3].name = "08:00-10:00"; application.rews.timePeriods[3].period.low = "08:00"; application.rews.timePeriods[3].period.high = "10:00"; application.rews.timePeriods[4] = StructNew(); application.rews.timePeriods[4].name = "10:00-13:00"; application.rews.timePeriods[4].period.low = "10:00"; application.rews.timePeriods[4].period.high = "13:00"; application.rews.timePeriods[5] = StructNew(); application.rews.timePeriods[5].name = "13:00-17:00"; application.rews.timePeriods[5].period.low = "13:00"; application.rews.timePeriods [5].period.high = "17:00"; application.rews.timePeriods[6] = StructNew(); application.rews.timePeriods[6].name = "17:00-21:00"; application.rews.timePeriods [6].period.low = "17:00"; application.rews.timePeriods[6].period.high = "21:00"; application.rews.timePeriods[7] = StructNew(); application.rews.timePeriods [7].name = "21:00-24:00"; application.rews.timePeriods[7].period.low = "21:00"; application.rews.timePeriods[7].period.high = "23:59"; application.rews.timePeriodsDefault.departOption = 3; application.rews.timePeriodsDefault.returnOption = 6; application.rews.paxMax = 9; -------- I've just read this article ( http://www.adobe.com/devnet/server_archive/articles/cf_locking_best_practic es.html) on locking read/write to application scoop, however the article seems old, is this still relevant? Note: the project I'm working on does not use application.cfc. Do I need to put application scope locking in place? There are 2650 refernece to this scope throughout the website! Perhaps it's not a locking issue, can anyone see any probs with the code? Cheers -- Senior Coldfusion Developer Aegeon Pty. Ltd. www.aegeon.com.au Phone: +613 8676 4223 Mobile: 0404 998 273 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "cfaussie" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en -~----------~----~----~----~------~----~------~--~---
