আমি সবেমাত্র আবিষ্কার করেছি যে একটি এএসপি. নেট ওয়েব অ্যাপ্লিকেশনটির প্রতিটি অনুরোধ একটি অনুরোধের শুরুতে একটি সেশন লক পায় এবং তারপরে অনুরোধের শেষে এটি প্রকাশ করে!
এটির প্রভাবগুলি যদি আপনার উপর নষ্ট হয়ে যায়, যেমন এটি প্রথম আমার জন্য ছিল, এর মূলত নিম্নলিখিতটি বোঝানো হয়েছে:
যে কোনও সময় কোনও এএসপি.নেট ওয়েবপৃষ্ঠাটি লোড হতে দীর্ঘ সময় নিচ্ছে (সম্ভবত ধীর ডাটাবেস কল বা যে কোনও কারণে) এবং ব্যবহারকারী সিদ্ধান্ত নিয়েছে যে তারা অপেক্ষা করতে করতে ক্লান্ত হয়ে তারা আলাদা পৃষ্ঠায় নেভিগেট করতে চায়, তারা পারে না! এএসপি.নেট সেশন লকটি নতুন পৃষ্ঠার অনুরোধটি মূল অনুরোধটির বেদনাদায়ক ধীরে ধীরে লোড শেষ না হওয়া পর্যন্ত অপেক্ষা করতে বাধ্য করে। Arrrgh।
যে কোনও সময় কোনও আপডেটপ্যানেল ধীরে ধীরে লোড হচ্ছে এবং আপডেটপ্যানেলটি আপডেট শেষ করার আগে ব্যবহারকারী আলাদা পাতায় নেভিগেট করার সিদ্ধান্ত নিয়েছে ... তারা পারবে না! এএসপিএনটেশন সেশন লকটি নতুন পৃষ্ঠার অনুরোধটি মূল অনুরোধটির বেদনাদায়ক ধীরে ধীরে লোড শেষ না হওয়া পর্যন্ত অপেক্ষা করতে বাধ্য করে। ডাবল আরআরগ!
তাই বিকল্প কি? এখনও অবধি আমি এনেছি:
- একটি কাস্টম সেশনস্টেটডেটাস্টোর প্রয়োগ করুন, যা এএসপি.নেট সমর্থন করে। আমি অনুলিপি করার জন্য খুব বেশি কিছু খুঁজে পাইনি এবং এটি একরকম উচ্চ ঝুঁকিপূর্ণ এবং গণ্ডগোলের পক্ষে সহজ বলে মনে হচ্ছে।
- সমস্ত অনুরোধ অগ্রগতিতে রাখুন, এবং যদি একই ব্যবহারকারীর কাছ থেকে অনুরোধ আসে, মূল অনুরোধটি বাতিল করুন। একধরণের চরম মনে হয় তবে এটি কাজ করবে (আমার মনে হয়)।
- সেশন ব্যবহার করবেন না! যখন ব্যবহারকারীর জন্য আমার একধরণের অবস্থা দরকার তখন আমি কেবল পরিবর্তে ক্যাশে এবং সত্যায়িত ব্যবহারকারীর নাম বা অন্য কোনও জিনিস ব্যবহার করতে পারি। আবার চরম ধরনের মনে হচ্ছে।
আমি সত্যিই বিশ্বাস করতে পারি না যে এএসপি. নেট মাইক্রোসফ্ট দলটি 4.0 সংস্করণে ফ্রেমওয়ার্কে এত বিশাল পারফরম্যান্সের বাধা ফেলে রেখেছিল! আমি কি স্পষ্ট কিছু মিস করছি? অধিবেশনটির জন্য থ্রেডসেফ সংগ্রহটি ব্যবহার করা কতটা কঠিন?