AJAX এর
আমি মনে করি আপনার প্রশ্নটি এ পর্যন্ত ফুটে উঠেছে, "আমার ওয়েব অ্যাপ্লিকেশনটি কি ক্লায়েন্টের পাশে বা সার্ভারের পাশে HTML তৈরি করা উচিত?" ক্লায়েন্ট-সাইড প্রজন্ম এজেএক্স ব্যবহার করে সার্ভারে যোগাযোগ করে যদিও এক্স (এক্সএমএল) সাধারণত জেএসএন দ্বারা প্রতিস্থাপন করা হয়েছে, তবে বেশিরভাগ লোক এখনও এজ্যাক বলে কারণ এটি আরও ভাল বলে মনে হয়। সার্ভার-সাইড, সার্ভারটি কেবল সার্ভারে এইচটিএমএল তৈরি করে।
এক্সএমএল নিয়ে আমার প্রচুর অভিজ্ঞতা আছে এবং জেএসএনের সাথে প্রায় কোনওটাই নেই। এক্সএমএল সম্পর্কে আমি যা কিছু জানি তা আমাকে পরামর্শ দেয় যে আপনি যদি সম্ভব হয় তবে জেএসএন ব্যবহার করুন।
AJAX পেশাদাররা:
- HTTP (S) এর উপর কম ডেটা প্রেরণ করুন যাতে তারা দ্রুত চালাতে পারে।
- সার্ভারটি মূলত একটি ওয়েব পরিষেবা যাতে অন্য ব্যক্তিরা (বা আপনি) নিজের ক্লায়েন্ট লিখতে পারেন। আপনার সাইটের একটি মোবাইল সংস্করণ তৈরি করার সময় এটি সহায়তা করতে পারে। এছাড়াও, অনেক আবিষ্কারগুলি যে কারণে তাদের স্রষ্টা কখনও ইচ্ছা করেনি সে জন্য জনপ্রিয় হয়ে ওঠে। পরিষেবাগুলি আপনার কোডের জন্য নতুন ব্যবহারগুলি সন্ধানকারীদের সাথে বন্ধুত্বপূর্ণ।
- একটি নতুন অ্যাপ্লিকেশন মনে হচ্ছে
আজাক কনস:
- ডিফল্ট জাভাস্ক্রিপ্ট
- জটিলতা?
- জাভাস্ক্রিপ্টের সাহায্যে আপনি যে জিনিসটি করতে পারেন তা অন্ধ বা প্রতিবন্ধীদের জন্য ব্যবহার করা প্রায়শই সম্পূর্ণ অসম্ভব।
- মোট আরও কোডের প্রয়োজন হতে পারে (আপনার এম্বেড থাকা ডিভাইসে বড় সামগ্রিক স্টোরেজ)
ক্লায়েন্ট সার্ভার
সমস্ত ওয়েব অ্যাপ্লিকেশন ক্লায়েন্ট-সার্ভার আর্কিটেকচার ব্যবহার করে। এইচটিটিপি প্রোটোকল ওয়েব অ্যাপ্লিকেশনকে সেভাবে আচরণ করতে বাধ্য করে। এজেএক্স সেই নকশার সীমাবদ্ধতার জন্য একটি ওয়ার্ক-এভার ব্যবহার করে তবে এইচটিটিপির প্রাথমিক অন্তর্নিহিত মডেলটি এখনও ক্লায়েন্ট-সার্ভার। ওয়েব অ্যাপ্লিকেশনগুলিতে এমভিসি প্রয়োগের সর্বোত্তম উপায় সম্পর্কে আমি পুরো বিষয়টি সম্পর্কে ঝুলতে চাই না। যদি আপনাকে রাজনৈতিক কারণে এমভিসি করতে হয়, তবে রুবি / রেলগুলি এটি কী করে তা দেখুন। আসলে, কপিগুলি (বা ব্যবহার) অনুলিপি করার জন্য একটি দুর্দান্ত আর্কিটেকচার R
পরিষেবা বনাম অ্যাপ্লিকেশন।
একটি ভাল পরিষেবা প্রায় সবসময় একটি অ্যাপ্লিকেশন চেয়ে ভাল। তবে একটি ভাল পরিষেবা করা কঠিন! কোনও পরিষেবার জন্য যথেষ্ট পরিমাণে নকশাকৃত নকশা লিখতে পারার আগে আপনাকে অ্যাপ্লিকেশনটি তৈরি করতে হবে। আপনার কাজটি যতটা প্রয়োজন তার চেয়ে বেশি কঠিন করবেন না। সংস্করণ 1 এর জন্য, দুর্দান্ত অ্যাপ্লিকেশন তৈরি করতে মনোনিবেশ করুন। আপনার অ্যাপ্লিকেশন তুলনামূলকভাবে স্থিতিশীল না হওয়া পর্যন্ত এবং আপনি নিশ্চিত যে এটি আপনার ব্যবহারকারীর প্রয়োজনীয়তাগুলি পূরণ করে, কোনও পরিষেবাদি দেওয়া সম্ভবত কোনওভাবেই আপনার পক্ষে ভাল করবে না। ভুল পরিষেবাটি খুব তাড়াতাড়ি ডিজাইনিং করা হ'ল সময় নষ্ট করা যা আপনি নিজের পরিষেবা ইন্টারফেসটি ঠিক করার চেষ্টা করার সময় অপচয় করতে থাকেন এবং সার্ভার এবং ক্লায়েন্ট কোড উভয়েরই বিশাল রিফ্যাক্টরিংয়ের সাথে ডিল করেন।
সি / ওয়েব
কি দারুন. ওয়েব ডেভলপমেন্টে স্যুইচ করার আগে আমি সি এবং অ্যাসেমব্লিতে 3 বছর কাজ করেছি। ওয়েব অ্যাপ্লিকেশন লেখার জন্য আমি আরও খারাপ ভাষা ভাবতে পারি না - বিশেষত সুরক্ষার দিক থেকে। ইনপুট বৈধতা এবং আউটপুট এড়িয়ে যাওয়া এতটাই সমালোচনামূলক ... এসএনএস প্রতি বছর সবচেয়ে সাধারণ ত্রুটির একটি তালিকা প্রকাশ করে of বাফার ওভারফ্লো, ইনজেকশনগুলি, ক্রস-সাইট সমস্যাগুলি (অনুপযুক্ত আউটপুট এনকোডিং) ... এই সমস্ত ত্রুটিগুলি সত্যই সি বা অ্যাসেমব্লিতে তৈরি করা সহজ। কমপক্ষে জাভার মতো কোনও ভাষাতে একটি স্ট্রিং রয়েছে যা ওভারফ্লো থেকে প্রতিরোধী এবং একটি ব্যতিক্রম হ্যান্ডলিং মেকানিজম যা সাধারণত দূষিত কোডটিকে সিস্টেম মেমোরিতে অ্যাক্সেস করার অনুমতি থেকে বিরত রাখে। আন্তর্জাতিক চরিত্র সেটগুলি পরিচালনা করার কথা উল্লেখ করবেন না ( সম্ভব হলে ইউটিএফ -8 ব্যবহার করুন )।
আপনার যদি মেমরি বা ফার্মওয়্যার কারণে সি ব্যবহার করতে হয় তবে আপনাকে যা করতে হবে তা হ'ল। শুধু সতর্ক হও!
ব্রাউজার সমর্থন
ওয়েব অ্যাপ্লিকেশন তৈরির প্রথম পদক্ষেপটি আবিষ্কার করছে যে আপনার ব্রায়াররা আপনার ক্লায়েন্টরা ব্যবহার করবেন ? ডাব্লু 3 স্কুল এবং উইকিপিডিয়া উভয়ই সাধারণ পরিসংখ্যানের ভাল উত্স, তবে ওয়াইএমএমভি।
আমি এখন যেখানে কাজ করি আমরা বর্তমানে তা যাচাই করি যে আমাদের অ্যাপ্লিকেশনটি কেবল বৈধ এক্সএইচটিএমএল 1.0 ট্রানজিয়াল এইচটিএমএল তৈরি করে। আমরা IE তে কুইর্কস মোড এড়ানোর জন্য প্রয়োজনীয় নির্দিষ্ট ডক্টাইপ এবং ফর্ম্যাটিং ব্যবহার করি যা ক্রস-ব্রাউজার এইচটিএমএল লিখতে সহজ করে তোলে ( আমার ব্লগে টিপস দেখুন )। আমরা IE এর সর্বশেষ 3 সংস্করণ, প্লাস ফায়ারফক্স এবং ক্রোম উইন্ডোজ এবং লিনাক্সে পরীক্ষা করি (সাফারি ক্রোমের মতো একই রেন্ডারিং ইঞ্জিন ব্যবহার করে)। সেই বৈধতা এবং পরীক্ষার মাধ্যমে, আমাদের অ্যাপ্লিকেশনটি ব্ল্যাকবেরি ব্যতীত অন্য কোথাও (উইন্ডোজ, ম্যাক, লিনাক্স, আইফোন, অ্যান্ড্রয়েড, ইত্যাদি) কাজ করে।
ব্ল্যাকবেরি জাভাস্ক্রিপ্ট সহ সত্যিকারের ব্রাউজারটি কখনও পায় নি, তাই আমরা এটি সমর্থন করি না। ব্ল্যাকবেরি ব্যবহারকারীরা সত্যিকারের ওয়েব ব্রাউজার না রাখার জন্য অভ্যস্ত, তাই তারা অভিযোগ করেন না। সম্ভবত যে পরিবর্তন হচ্ছে? আমি কয়েকটি ক্লায়েন্টকে তারা কী ব্রাউজারগুলি ব্যবহার করছে তা জিজ্ঞাসা করার চেষ্টা করব এবং সেই ব্রাউজারগুলির সাথে পরীক্ষা করে নেওয়ার বিষয়টি নিশ্চিত করবো।
সারসংক্ষেপ
সমস্ত ওয়েব সাইটগুলি এইচটিএমএল এবং এইচটিটিপিতে নির্মিত। আপনি নিজের অ্যাপ্লিকেশনটি তৈরি করার সময় এই প্রযুক্তিগুলির জন্য একটি ভাল রেফারেন্স পান। এমনকি কোনও সরঞ্জামকিট ব্যবহার করেও অ্যাপ্লিকেশন দেওয়ার সময় আপনি এই সমস্যাগুলি সমাধান করার জন্য এই প্রযুক্তিগুলিকে প্রাথমিক বোঝার প্রয়োজন বলে মনে করবেন।
শালীন দেখায় এবং দ্রুত প্রতিক্রিয়া দেখায় এমন কিছু তৈরি করার জন্য আপনার সম্ভবত সিএসএস এবং চিত্র সংকোচনে আরামদায়ক হওয়া প্রয়োজন। জাভাস্ক্রিপ্ট, ওয়েব-সার্ভার এবং ব্রাউজারগুলি জ্ঞানের অতিরিক্ত ক্ষেত্র যা আপনার শেষ পর্যন্ত প্রয়োজন।
আপনি যদি সার্ভার-সাইডে আপনার এইচটিএমএল তৈরি করেন তবে আপনার কোড বেসটি সম্ভবত ছোট হবে এবং আপনার জাভাস্ক্রিপ্ট শিখতে হবে না। সার্ভার-সাইড মডেলটির অর্থ আপনার প্রোগ্রামাররা (সি?) কোড লিখবে যা এইচটিএমএল উত্পন্ন করে যে এটি ক্লায়েন্টকে প্রেরণের আগে তারা সরাসরি দেখতে পারে। AJAX মডেলটির অর্থ আপনার প্রোগ্রামাররা জাভাস্ক্রিপ্ট লিখে যা HTML তৈরি করে। আমি ব্রাউজারের মধ্যে জাভাস্ক্রিপ্ট দ্বারা উত্পন্ন HTML কোড যাচাই বা এমনকি দেখার জন্য অনেক সরঞ্জাম সম্পর্কে অবগত নই, সঠিকভাবে প্রোগ্রাম করা আরও কঠিন করে তোলে।
আমি এখন যেখানে কাজ করি সেখানে আমরা একটি হাইব্রিড পদ্ধতির ব্যবহার করি যা মাঝে মধ্যে জাভা কোড জড়িত যা জাভাস্ক্রিপ্ট তৈরি করে যা এইচটিএমএল উত্পন্ন করে। যদি আপনি ছেলেরা ওয়েব বিকাশে নতুন হন তবে এটি শুরু করার জায়গা নয়। আমার ধারণা আমার বলতে হবে যে আপনি যদি এজেএক্স মডেলটি ব্যবহারের বাধ্যবাধকতা না পান তবে আমি পুরানো সার্ভার-সাইড-এইচটিএমএল-প্রজন্মের মডেলটি দিয়ে শুরু করব এবং এটি আপনাকে কতটা দূরে নিয়ে যায় তা দেখতে পাব।