Мне интересно, нужно ли мне блокировать некоторый код, созданный в области приложения. Если я создам объект, скажите userDAO.cfc в области приложения, чтобы он был доступен для всех страниц. Тогда, если у меня есть метод в этом объекте, скажите getUserInfo (userID), который будет вызываться в разных частях приложений, мне нужно заблокировать этот метод?Когда использовать блокировку в области приложения
ответ
Короткий ответ: возможно, нет.
Если этот объект создан в области приложения из метода OnApplicationStart() приложения Application.cfc, и он никогда не изменяется, а также вы обязательно должны var все свои переменные для всех ваших функций, то вы не будете необходимо заблокировать доступ к нему.
В этом случае функция OnApplicationStart() выполняет блокировку для вас и не позволит никому действовать до тех пор, пока этот метод не будет создан. Это хорошо, потому что это позволит только создать элемент один раз и убедиться, что он существует до того, как кто-либо еще его использует.
Если вы создаете экземпляр объекта из любого места, например, верхней части какой-либо случайной страницы, тогда да, вам нужно будет заблокировать его здесь и всюду, ссылаясь на него.
Если объект будет когда-либо изменен на другой объект или если он сохраняет какое-либо состояние, например, частные или общедоступные переменные (переменные. * Или это. *), Которые меняются на другие вещи, вы можете заблокировать его извне или вы можете попытаться заблокировать его внутри cfc на основе переменной.
И, наконец, если вы не var все переменные (use Mike Schierberl's varScoper!), то вы будете изменять состояние объекта. Вы никогда не должны доходить до этого момента, но это случай блокировки.
Большие исключения для всего, если вы используете CF 5 или ниже, и в этом случае любой доступ к общей области доступа ДОЛЖЕН быть заблокирован, а если вы используете CF 6 или 6.1, в этом случае нет Application.cfc ,
Ну, ColdFusion 5 исключает возможность использования CFC, но в остальном вы правы. – ale 2008-11-19 17:56:35
- 1. Когда использовать блокировку в C#?
- 2. Когда использовать блокировку против MemoryBarrier в .NET
- 3. Когда следует использовать метод «выполнить блокировку»?
- 4. Использовать блокировку Android Pattern
- 5. Как предотвратить блокировку приложения Android?
- 6. Как использовать блокировку в OpenMP?
- 7. Как использовать блокировку в потоках
- 8. Зачем использовать блокировку в MongoDB?
- 9. Когда использовать событие/условие/блокировку/семафор в потоковом модуле python?
- 10. Когда использовать блокировку и неназванный мьютекс в .NET?
- 11. Когда использовать разрешение области в javascript?
- 12. Можно ли обойти блокировку файлов в C#, когда другой поток/процесс имеет необходимость использовать эксклюзивную блокировку?
- 13. Как обнаружить блокировку приложения Java в Netbeans?
- 14. Использовать блокировку экрана в моем приложении
- 15. Как использовать блокировку на IList
- 16. , когда поток освободит блокировку объекта?
- 17. , когда мы должны использовать расслоение: блокировку и разблокировку на rails3
- 18. Когда Thread получает блокировку, другие могут использовать другие методы?
- 19. Конфигурирование внутренней области приложения
- 20. Ребенок не может получить блокировку Mutex в области общей памяти
- 21. Qt 5 вызывает блокировку привратника моего приложения
- 22. Когда я должен использовать блокировку видимости (приложение, сервер и т. Д.) Против именованной блокировки в ColdFusion?
- 23. Как использовать блокировку мыши в Javascript?
- 24. Как использовать блокировку MessgeBox в kivy
- 25. Воспроизведение неявного приложения в области
- 26. Когда использовать контекст приложения в Springs.
- 27. Когда использовать роль приложения в базе данных?
- 28. Как использовать переменную области приложения в пользовательском перехватчике?
- 29. Как разработать блокировку приложения для android
- 30. Любые причины вообще направить блокировку бесплатного приложения?
См. Также: [Когда следует использовать блокировку области действия (приложение, сервер и т. Д.) Против именованной блокировки в ColdFusion?] (Http://stackoverflow.com/q/296721/21960) – ale 2016-08-02 12:51:15