জেএসএন ডেটার পরিবর্তে কোনও এন্ডপয়েন্টটি ফেরত এইচটিএমএল আসলে আসলে কী?


77

যখন আমি প্রথম পিএইচপি শিখতে শুরু করেছি (প্রায় 5 বা 6 বছর আগে) আমি আজাক্স সম্পর্কে শিখেছি এবং আমি "পর্যায়ক্রমে" পেরিয়েছি:

  1. আপনার সার্ভারটি এইচটিএমএল ডেটা প্রত্যাবর্তন করে এবং আপনি এটিকে একটি ডিওএমের অভ্যন্তরীণ এইচটিএমএল এর মধ্যে রেখে দেন
  2. আপনি এক্সএমএলের মতো ডেটা ট্রান্সফার ফর্ম্যাটগুলি সম্পর্কে শিখুন (এবং "ওহো তাই বলুন যা এর জন্য ব্যবহার করা হয়) এবং তারপরে জেএসওএন।
  3. আপনি JSON ফেরত যান এবং ভ্যানিলা জাভাস্ক্রিপ্ট কোড ব্যবহার করে আপনার ইউআই তৈরি করেন
  4. আপনি jQuery এ যান
  5. আপনি এপিআই, শিরোলেখ, এইচটিটিপি স্থিতি কোড, REST , CORS এবং বুটস্ট্র্যাপ সম্পর্কে শিখুন
  6. আপনি এসপিএ এবং ফ্রন্টএন্ড ফ্রেমওয়ার্কগুলি ( প্রতিক্রিয়া , Vue.js , এবং AngularJS ) এবং JSON API স্ট্যান্ডার্ড শিখুন
  7. আপনি কিছু এন্টারপ্রাইজ লিগ্যাসি কোড পেয়েছেন এবং এটি পরিদর্শন করার পরে, খুঁজে নিন যে তারা প্রথম ধাপে বর্ণিত হয়েছে do

আমি যেমন এই লিগ্যাসি কোডবেস নিয়ে কাজ করেছি, আমি এমনকি এটিও এইচটিএমএল ফিরিয়ে আনতে পারে তা বিবেচনা করি নি (মানে আমরা এখন পেশাদার, ডান?) Ajax কল পপুলেট। আমি "প্রোগ্রামারকে" জিজ্ঞাসা না করেই তিনি আমাকে জানান যে এটি HTML ফিরিয়ে দিচ্ছে এবং সরাসরি ডর্মের সাথে ইনটারএইচটিএমএল যুক্ত করা হবে।

অবশ্যই, এটি গ্রহণ করা কঠিন ছিল। আমি এটিকে জেএসএন এন্ডপয়েন্টগুলিতে রিফ্যাক্টর করার উপায়গুলি ভাবতে শুরু করেছিলাম, শেষের স্থানগুলি ইউনিট পরীক্ষা করার বিষয়ে চিন্তাভাবনা করি। তবে এই কোডবেসের কোনও পরীক্ষা নেই। একটিও নয়। এবং এটি 200k লাইনেরও বেশি। অবশ্যই আমার একটি কাজের মধ্যে পুরো জিনিসটি পরীক্ষার জন্য পদ্ধতির প্রস্তাব দেওয়ার অন্তর্ভুক্ত রয়েছে, তবে এই মুহুর্তে আমরা এখনও এটি মোকাবেলা করছি না।

সুতরাং আমি কোথাও নেই, এক কোণে অবাক হয়ে ভাবছি: যদি আমাদের যা কিছু পরীক্ষা না করে থাকে, তাই আমাদের এই জেএসএন শেষ পয়েন্টটি তৈরি করার কোনও বিশেষ কারণ নেই (যেহেতু এটি "পুনরায় ব্যবহারযোগ্য" নয়: এটি আক্ষরিক অর্থে ডেটা ফেরত দেয় যা কেবলমাত্র সেই অংশের সাথে খাপ খায়) অ্যাপ্লিকেশন, তবে আমি মনে করি এটি ইতিমধ্যে জড়িত ছিল কারণ এটি ... এইচটিএমএল ডেটা ফেরায়)।

কি ঠিক এই কাজ কি ভুল আছে?



3
এছাড়াও সম্পর্কিত: স্ট্যাকওভারফ্লো.com/ প্রশ্নগুলি / 1284381/… <- এসও-তে খুব ভাল উত্তর।
মাচাডো

73
হাইপারটেক্সট ট্রান্সফার প্রোটোকল ব্যবহার করে এমন একটি সার্ভার হাইপারটেক্সট ফিরছে ?! ভয়!
অ্যান্ডি

3
@ অ্যান্ডি নিখুঁতভাবে সত্য বলতে, এটি আসলে জেনেরিক মেসেজ ট্রান্সফার প্রোটোকল: এফটিপি-র বিরোধী হাইপারটেক্সট স্থানান্তর করার ক্ষেত্রে এর কিছুই নির্দিষ্ট নয়, যা ফাইল এবং ডিরেক্টরি সম্পর্কিত নির্দিষ্ট বিষয় সম্পর্কে অনেক কথা বলে।
জোকার_ভিডি

4
@ জোকার_ভিডি আমি জিএমটিপি নামে প্রোটোকলের কথা কখনও শুনিনি। জিনিসগুলি বিবর্তিত হয়েছে এবং আপনি HTTP- র মাধ্যমে অন্যান্য ধরণের সামগ্রী প্রেরণ করতে পারেন, এটি মূল উদ্দেশ্য ছিল না। আমার বক্তব্যটি হ'ল আপনি এইচটিটিপি ব্যবহার করে হাইপারটেক্সট ছাড়াও অন্যান্য সামগ্রী প্রেরণ করতে পারেন বলে নির্বোধ বলে মনে হয় এটির মূল উদ্দেশ্যে এটি ব্যবহার করার জন্য এটি আর বৈধ নয়।
অ্যান্ডি

উত্তর:


114

জেএসএন ডেটার পরিবর্তে কোনও এন্ডপয়েন্টটি ফেরত এইচটিএমএল আসলে আসলে কী?

সত্যি কিছু না. প্রতিটি অ্যাপ্লিকেশনের বিভিন্ন প্রয়োজনীয়তা রয়েছে এবং এটি হতে পারে যে আপনার অ্যাপ্লিকেশনটি এসপিএর জন্য ডিজাইন করা হয়নি।

এটি এমন হতে পারে যে আপনি যে সুন্দর ফ্রেমওয়ার্কগুলি উদ্ধৃত করেছেন (কৌণিক, ভ্যু, প্রতিক্রিয়া, ইত্যাদি ...) বিকাশের সময় উপলব্ধ ছিল না বা আপনার প্রতিষ্ঠানে "অনুমোদিত" এন্টারপ্রাইজ জিনিসপত্র ব্যবহার করা হয়নি।

আমি আপনাকে এটি বলতে যাচ্ছি: এমন একটি প্রান্ত বিন্দু যা এইচটিএমএল ফেরত দেয় যা জাভাস্ক্রিপ্ট লাইব্রেরিতে আপনার নির্ভরতা হ্রাস করে এবং ব্যবহারকারীর ব্রাউজারে বোঝা হ্রাস করে যেহেতু ডিওএম অবজেক্ট তৈরি করতে জেএস কোডটি ব্যাখ্যা / সম্পাদন করতে হবে না - এইচটিএমএল ইতিমধ্যে রয়েছে, এটি কেবলমাত্র উপাদানগুলিকে পার্স করা এবং রেন্ডার করার বিষয়। অবশ্যই, এর অর্থ আমরা যুক্তিসঙ্গত পরিমাণের ডেটা সম্পর্কে কথা বলছি। এইচটিএমএল ডেটা 10 মেগাবাইট যুক্তিসঙ্গত নয়।

তবে যেহেতু এইচটিএমএল ফেরার ক্ষেত্রে কোনও সমস্যা নেই তাই আপনি JSON / XML ব্যবহার না করে যা হারাচ্ছেন তা হ'ল মূলত আপনার এন্ডআইপয়েন্টটি এপিআই হিসাবে ব্যবহার করার সম্ভাবনা। এবং এখানে সবচেয়ে বড় প্রশ্ন রয়েছে: এটির সত্যই কোনও এপিআই হওয়া দরকার?

সম্পর্কিত: একটি JSON API থেকে এইচটিএমএল ফিরিয়ে দেওয়া ঠিক আছে কি?


4
এটি কেবল "সাধারণ পছন্দ" বলার আগে আমি একটি পদক্ষেপ নিতে চাই। আপনার কিছু "বিগ ডিল" সিদ্ধান্ত নিতে হবে: এটি একটি এপিআই বা না, ক্লায়েন্টের জেএসওএন ডেটা হিসাবে এটি নিয়ে কাজ করার জন্য আমার কাছে কি সঠিক লাইব্রেরি আছে, আমি কোন ধরণের ক্লায়েন্টকে সমর্থন করব (জাভাস্ক্রিপ্ট ছাড়াই ব্রাউজারগুলি, কারণ) উদাহরণস্বরূপ), বনাম CPU- র সময় কি পরিমাণ আমি আছে ব্যবহার করতে, যা কৌশল আমার প্রোগ্রামারদের, ভাল লিভারেজ হবে ইত্যাদি ইত্যাদি ইত্যাদি
মাচাদো

7
"এটি ডিওএম অবজেক্ট তৈরি করার জন্য জেএস কোডটি ব্যাখ্যা করার প্রয়োজন হবে না - ডিওএম অবজেক্টগুলি ইতিমধ্যে রয়েছে, এটি কেবল তাদের রেন্ডারিংয়ের বিষয়" - ভাল, এইচটিএমএল ইতিমধ্যে সেখানে উপস্থিত হয়েছে (একবার তারের উপরে এসে গেছে)। ব্রাউজারটি এইচটিএমএল বিশ্লেষণ করতে হবে এবং এটি থেকে ডিওএম অবজেক্ট তৈরি করতে হবে।
পল ডি ওয়েট

7
এইচটিএমএল একটি API হিসাবে কাজ করতে পারে না এর শূন্য কারণ রয়েছে। জিরো। কোনটিই নয়। প্রকৃতপক্ষে, এইচএল + জেএসওএন এবং এইচএল + এক্সএমএল এইচটিএমএল এর সাথে আকর্ষণীয় সাদৃশ্য রয়েছে। এখানে REST সম্পর্কে একটি দুর্দান্ত আলোচনা। শেষ প্রান্ত থেকে এইচটিএমএল ফেরা সম্পর্কে সম্পর্কিত অংশ শেষের কাছাকাছি। youtu.be/pspy1H6A3FM ব্যক্তিগতভাবে, আমি আমার সমস্ত প্রান্তকে json এবং এইচটিএমএল উভয়ই ফিরিয়ে দিই। আপনি যদি আবিষ্কারযোগ্য সেবা রচনা করেন তবে এটি ব্রাউজারে ... হাঁফানো ... একটি ব্রাউজারে করা সত্যিই সহজ করে তোলে ।
রাবারডাক

4
যেহেতু আপনি যে তথ্যটি নতুনভাবে উপায়ে ব্যবহার করার চেষ্টা করছেন তার জন্য ডেটা বের করার জন্য এটি সম্পূর্ণ বিচ?
ডেডএমজি

4
এইচটিটিপি এর মাধ্যমে এইচটিএমএল পরিবেশন করছেন? এটা কি? একটি ওয়েবসাইট?
পিপীলিকা পি

50

জেএসএন এবং এইচটিএমএল দুটি ভিন্ন শব্দার্থক উদ্দেশ্য পূরণ করে।

আপনি যদি কোনও ডেটা দিয়ে কোনও ওয়েবপৃষ্ঠা গড়ে তোলেন তবে JSON ব্যবহার করুন। আপনি যদি ওয়েব পৃষ্ঠাগুলির অংশ থেকে কোনও ওয়েব পৃষ্ঠা তৈরি করছেন, এইচটিএমএল ব্যবহার করুন।

তারা শুনতে পাচ্ছে যে তারা একই জিনিস, তবে তারা তা নয়। একটি জিনিসের জন্য, আপনি যখন সার্ভার দ্বারা ফেরত এইচটিএমএল ব্যবহার করে কোনও ওয়েব পৃষ্ঠার একটি অংশ তৈরি করছেন, আপনি সার্ভার-সাইডে কাজ করছেন। আপনি যখন কোনও ওয়েব পৃষ্ঠায় ডেটা বাঁধছেন তখন আপনি ক্লায়েন্ট-সাইডে কাজ করছেন।

এছাড়াও, নির্দিষ্ট পৃষ্ঠায় শক্তভাবে আবদ্ধ না হওয়ার জন্য আপনাকে HTML সহ সতর্ক থাকতে হবে। আংশিক পৃষ্ঠাগুলি এইভাবে উপস্থাপনের পুরো বিন্দুটি পার্টিয়ালগুলি পুনরায় ব্যবহারযোগ্য হওয়ার জন্য, এবং আপনি যদি আংশিকটিকে খুব নির্দিষ্ট করে থাকেন তবে এটি অন্যান্য পৃষ্ঠাগুলিতে রচনা করবে না। জেএসএনের এই সমস্যা নেই, কারণ এটি কেবল ডেটা, ওয়েব পৃষ্ঠার কাঠামো নয়।


1
"একটি বিষয় আপনি যখন HTML ব্যবহার করে কোনও ওয়েব পৃষ্ঠার একটি অংশ তৈরি করছেন, আপনি সার্ভার-সাইডে কাজ করছেন" " কেন? কেন এমন হওয়া উচিত তার কোনও কারণ আমি দেখছি না। এটি কেবলমাত্র প্রাথমিক পৃষ্ঠার লোডের জন্য স্পষ্টতই সত্য এবং তত্ক্ষণাত নয় যেহেতু ক্লায়েন্টের প্রয়োজনীয় ডেটার জন্য অনুরোধ করতে পারে।
ডেড জিএমজি

3
@ ডিএডএমজি এটির বলা উচিত "যখন আপনি সার্ভারের মাধ্যমে ফিরে আসা HTML ব্যবহার করে কোনও ওয়েব পৃষ্ঠার একটি অংশ তৈরি করছেন" (সার্ভার দ্বারা ফিরে
জেএসএন

প্রকৃতপক্ষে, তবে যেহেতু এটির ক্ষেত্রে তেমন প্রেরণা নেই, তাই আমি বিষয়টি দেখতে পাচ্ছি না।
ডেডএমজি

6
@ ডেডএমজি কি কখনও ঘটতে পারে তার জন্য একটু প্রেরণা? সার্ভারের জন্য এইচটিএমএল ফিরতে হবে? আক্ষরিকভাবে এই পুরো এসই প্রশ্নটি সম্পর্কে।
ইমিবিস

আপনার এইচটিএমএল ফিরিয়ে দেওয়া উচিত কিনা তা নিয়ে প্রশ্ন। এটি স্পষ্ট যে প্রাথমিক প্রতিক্রিয়া অবশ্যই এইচটিএমএল হওয়া উচিত তবে অন্য কোনও এপিআইএস এইচটিএমএল ফিরিয়ে দেওয়ার কেন তার কোনও স্পষ্ট কারণ নেই।
ডেড এমজি

22

প্রধান সমস্যাটি হ'ল এটি ক্লায়েন্টের সাথে সার্ভারটিকে শক্তভাবে সংযুক্ত করে, যারা অবশ্যই এইচটিএমএল কাঠামো জানেন। এটি শেষ পয়েন্টগুলি নতুন উপায়ে বা নতুন অ্যাপ্লিকেশনগুলিতে পুনরায় ব্যবহার করা আরও কঠিন করে তোলে।

সরল ডেটা ফিরিয়ে দেওয়া এবং ক্লায়েন্টকে এটি রেন্ডিং দেওয়া সংযোগবদ্ধতা হ্রাস পায় এবং নমনীয়তা এবং পরীক্ষার ক্ষমতা বৃদ্ধি করে-আপনি মক ডেটার জন্য ক্লায়েন্টের ইউনিট পরীক্ষা চালাতে পারেন এবং কাঙ্ক্ষিত ডেটা পরীক্ষা করার জন্য সার্ভারে ইউনিট পরীক্ষা চালাতে পারেন।


11
এইচটিএমএল যুক্তিসঙ্গতভাবে জেনেরিক করা যেতে পারে। উদাহরণস্বরূপ আপনি বুলেটযুক্ত তালিকাটি ফেরত দিতে পারেন এবং এটি একটি ডিভে স্টাফ করতে পারেন, যেখানে এটি বিদ্যমান সিএসএস দ্বারা স্টাইলিং সাপেক্ষে।
রবার্ট হার্ভে

10
এই মুহুর্তে যদি আমার এটি স্টাফ করা দরকার হয় তবে এটি সমস্ত কার্যকর নয়। অথবা এটি অন্য কোনও অ্যাপ্লিকেশনে রেন্ডার করুন যা এইচটিএমএলে রেন্ডার করা হয়নি।
ডেড জিএম

2
আমি সবসময় এইচটিএমএল রচনা করব বলে পুনরায় বিবরণ জানাব এবং সেই HTML এর ফর্মটি অবশ্যই সমস্ত ব্যবহারের ক্ষেত্রে সর্বদা সম্পূর্ণভাবে সামঞ্জস্য হতে হবে, যা খুব সহায়ক সহায়ক গ্যারান্টি নয়। উদাহরণস্বরূপ, আমাদের অ্যাপ্লিকেশনটিতে আমাদের তালিকাগুলি রয়েছে, তবে আমরা আসলে ব্যবহার করি নি ulএবং liপরিবর্তে প্রত্যেককে একটি করে তৈরি করেছি div(কেন মনে নেই)। সার্ভার এটিতে s ulগুলি এবং liএর সাথে এইচটিএমএলগুলির একটি গোছা ফিরিয়ে দিলে মুশকিল হত ।
ডেডএমজি

2
গ্যারান্টিটি প্রথম স্থানে পাওয়া অর্থহীন বলে মনে হচ্ছে যখন আপনি কেবল তথ্যটি ফিরিয়ে দিতে পারবেন এবং ক্লায়েন্টকে এটি HTML হিসাবে যথাযথ হিসাবে রেন্ডার করতে দিন (এটি এমনকি যদি এটি
একেবারেই

1
কেবলমাত্র আমি দেখতে পাচ্ছি যেখানে এইচটিএমএল ফিরিয়ে দেওয়া আরও ভাল would যদি ক্লায়েন্টের কাছে রেন্ডারিং করার মতো পর্যাপ্ত সংস্থান না থাকে।
ডেড জিএমজি

14

আমার মনে হয় আপনার এটি কিছুটা পিছনের দিকে আছে। তুমি বলো:

আমাদের কোনও পরীক্ষা নেই, তাই আমাদের এই JSON শেষের অবস্থানটি তৈরি করার কোনও বিশেষ কারণ নেই

সঠিক এন্ডপয়েন্টটি ব্যবহার করার একটি কারণ হ'ল আপনি এটি পরীক্ষা করতে পারেন। আমি বলব যে কোনও পরীক্ষা না করা কিছু লেখা শুরু করার খুব ভাল কারণ। এটি হ'ল যদি এমন কোনও যুক্তি থাকে যা পরীক্ষার জন্য উপযুক্ত হবে।

কোডের 200k লাইনগুলি রিফ্যাক্টরগুলির পক্ষে অনেকগুলি এবং সম্ভবত এটি বজায় রাখা খুব শক্ত। কিছু শেষ পয়েন্ট বের করা এবং সেগুলি পরীক্ষা করা শুরু করার জন্য ভাল জায়গা হতে পারে।

আর একটি কারণ হতে পারে ক্লায়েন্ট থেকে সার্ভারকে আলাদা করা। যদি, সুদূর ভবিষ্যতে, অ্যাপ্লিকেশন ডিজাইন বা লেআউট পরিবর্তন হয় তবে এইচটিএমএল আউটপুটের চেয়ে উপযুক্ত ডেটা ফর্ম্যাট দিয়ে কাজ করা আরও সহজ। একটি আদর্শ বিশ্বে আপনাকে কেবল ক্লায়েন্ট পরিবর্তন করতে হবে এবং সার্ভারকে মোটেই স্পর্শ করতে হবে না।


বিন্যাসের পরিবর্তনগুলি সম্পর্কিত বিন্দুটি অন্তর্নিহিত ডেটা থেকে টেমপ্লেটগুলি পৃথক করার প্রয়োজনের মতো মনে হয় , তবে এই টেম্পলেটগুলি ক্লায়েন্টের কাছে থাকার কোনও কারণ নেই। প্রকৃতপক্ষে, এগুলি না হওয়ার প্রচুর কারণ রয়েছে , উদাহরণস্বরূপ, যদি আপনার রেন্ডারিং ক্লায়েন্টের উপর থাকে তবে আপনি ক্লায়েন্টের কাছ থেকে ডেটা লুকানোর সিদ্ধান্ত নিতে পারবেন না। সম্পূর্ণ পার্শ্ববর্তী HTML পৃষ্ঠাগুলির মতো একই টেম্প্লেটিং সিস্টেম দ্বারা আউটপুট হলে এইচটিএমএল পার্টিয়ালগুলি কেবল পুনরায় ত্বকযুক্ত হতে পারে।
আইএমএসওপি

6

ওয়েব পৃষ্ঠা তৈরির জন্য 3 টি উপায় (কমপক্ষে?):

  • পুরো পৃষ্ঠা সার্ভার পাশ তৈরি করুন।
  • সার্ভার প্লাস কোড (জাভাস্ক্রিপ্ট) থেকে একটি খালি হাড়ের পৃষ্ঠা ফিরে আসুন এবং পৃষ্ঠাটি তার ডেটা আনতে এবং এইচটিএমএল ক্লায়েন্টের পাশে রেন্ডার করুন।
  • আংশিক পৃষ্ঠা প্লাস কোডটি ফিরিয়ে দিন এবং কোডটি এইচটিএমএলের প্রাক-রেন্ডারযুক্ত ব্লকগুলি এনেছে যা এটি পৃষ্ঠায় ফেলে দিতে পারে।

প্রথমটি ঠিক আছে। দ্বিতীয়টিও ঠিক আছে। এটিই শেষ সমস্যা last

কারণ সহজ: আপনি এখন আছে বিভক্ত সম্পূর্ণ বিচ্ছিন্ন অংশে HTML পাতায় নির্মাণ। সমস্যা রক্ষণাবেক্ষণের এক। ইউআই এর বিশদ পরিচালনার দায়িত্বে এখন আপনার দুটি পৃথক সত্ত্বা রয়েছে। সুতরাং আপনাকে দুটি পৃথক টুকরোটির মধ্যে সিএসএস এবং অন্যান্য অনুরূপ বিশদ সমন্বয় রাখতে হবে। আপনি পাশের প্রস্থের প্রস্থ পরিবর্তন করেছেন? গ্রেট। এখন ফিরে আসা এইচটিএমএল খণ্ডটি অনুভূমিক স্ক্রোলিংয়ের কারণ কারণ পাশের প্রস্থের প্রস্থ সম্পর্কে তার অনুমানগুলি আর ধরে না। আপনি কি এই ব্লকের জন্য পটভূমি রঙ পরিবর্তন করেছেন? দুর্দান্ত, এখন আপনার এইচটিএমএল খণ্ডের ফন্টের রঙের সংঘাত ঘটায় কারণ এটি একটি ভিন্ন পটভূমির রঙ ধরেছিল এবং কেউ এই শেষ পয়েন্টটি পরীক্ষা করতে ভুলে গেছে।

মুল বক্তব্যটি হ'ল আপনি এখন জ্ঞানকে বিভক্ত করেছেন যা একক স্থানে কেন্দ্রীভূত হওয়া উচিত (যথা উপস্থাপনার যুক্তি), এবং এটি সমস্ত টুকরা সঠিকভাবে একসাথে খাপ খায় তা নিশ্চিত করা আরও কঠিন করে তোলে। একটি JSON এপিআই ব্যবহার করে আপনি তার পরিবর্তে সমস্ত যুক্তিকে ঠিক সামনের প্রান্তে রাখতে পারেন, বা আপনি যদি আপনার ডেটা এইচটিএমএল থেকে প্রারম্ভিকভাবে রেন্ডার করেন তবে আপনি এটি সমস্ত আপনার সার্ভারের পাশের টেম্পলেটগুলিতে রাখতে পারেন। এটি উপস্থাপনা জ্ঞান / যুক্তি একক স্থানে রাখার বিষয়ে, তাই এটি ধারাবাহিকভাবে এবং একক প্রক্রিয়ার অংশ হিসাবে পরিচালনা করা যায়। এইচটিএমএল / সিএসএস / জেএসকে অনেক ছোট ছোট টুকরো টুকরো করে সোজা করে রাখা যথেষ্ট কঠিন।

উপস্থাপনা যুক্তি থেকে ডেটা সম্পূর্ণ স্বাধীনভাবে সরবরাহ করার অতিরিক্ত সুবিধাও জেএসএন এপিআইয়ের রয়েছে benefit এটি একাধিক, বিভিন্ন উপস্থাপক, যেমন একটি মোবাইল অ্যাপ্লিকেশন এবং ওয়েব পৃষ্ঠা উভয়কে একই ডেটা গ্রাস করতে দেয়। বিশেষত, এটি ব্রাউজার ছাড়াই ডেটা গ্রাহ্য করতে সক্ষম করে (যেমন মোবাইল অ্যাপস বা নাইট ক্রোন জবস); এই গ্রাহকরা এমনকি HTML পার্স করতে সক্ষম নাও হতে পারে। (এটি অবশ্যই প্রয়োজনীয়ভাবে এমন পরিস্থিতির উপর নির্ভর করে যেখানে বিভিন্ন গ্রাহকের মধ্যে ডেটা একই রকম হয়, বা অন্য একজনের সাবসেট ব্যবহার করতে পারে)) আপনার এই দক্ষতার প্রয়োজন কিনা তা আপনার নির্দিষ্ট প্রয়োগের প্রয়োজনীয়তার উপর নির্ভর করে যদিও আপনার উপস্থাপনা পরিচালনা করার সময় যুক্তি নির্বিশেষে প্রয়োজনীয়। আমি বলব যে আপনি যদি এটিকে সামনে রেখে বাস্তবায়ন করেন তবে আপনি ভবিষ্যতের বিকাশের জন্য আরও ভাল প্রস্তুত থাকবেন।


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

1
আপনি শুধুমাত্র এক যারা মোবাইল উল্লেখ আছেন, আমি যে জন্য আপনি একটি হাজার upvotes দিতে চান
Lovis

1
@ আইএমএসপ যদি আপনার একটি গতিশীল পৃষ্ঠা দরকার হয় তবে আপনার সামনের দিকের যুক্তি থাকতে হবে। আপনি যদি এখনও টুকরো টুকরো সার্ভারের দিকটি রেন্ডার করেন তবে এখন আপনাকে অবশ্যই নিশ্চিত করতে হবে যে সামনের প্রান্তের অনুমানগুলি টুকরোগুলি তৈরির সার্ভারের পূর্ব-শর্তগুলির সাথে মেলে। আপনি সেই নির্ভরতা ভাঙতে পারবেন না। জ্ঞানটিকে সম্পূর্ণ বিভক্ত সিস্টেমে বিভক্ত করা হলে সিঙ্কে রাখা শক্ত। যদি আপনি কেবল সামনের প্রান্তে রেন্ডার করেন তবে সেই অনুমানগুলি কেন্দ্রীভূত। আমি মনে করি যে আমি কোনও সার্ভার সাইড টেম্পলেটে প্রাথমিক অবস্থার সাথে ডায়নামিক ফ্রন্ট এন্ড মিশ্রণ এড়াতে চাই; সামনের প্রান্তটি শুরু করতে একটি "বুটস্ট্র্যাপ" সহজ।
jpmc26

4

আমি বলব যে সার্ভারটি এইচটিএমএল টুকরা ফেরত পাঠায় এবং ইউআই এটির কোনও উপাদানটির ইনার এইচটিএমএলকে অর্পণ করে কোনও সমস্যা নেই। এটি আমার মতে, অ্যাসিনক্রোনাস জাভাস্ক্রিপ্ট কোড বিকাশের সবচেয়ে সহজ উপায়। সুবিধাটি হ'ল জাভাস্ক্রিপ্ট ব্যবহার করে যতটা সম্ভব করা সম্ভব এবং যতটা সম্ভব নিয়ন্ত্রণিত ব্যাক-এন্ড পরিবেশে করা যায়। মনে রাখবেন যে ব্রাউজারগুলিতে জাভাস্ক্রিপ্ট সমর্থনটি পরিবর্তিত হয় তবে আপনার ব্যাক-এন্ডে সর্বদা ব্যাক-এন্ড উপাদানগুলির একই সংস্করণ থাকে যার অর্থ ব্যাক-এন্ডে যতটা সম্ভব সম্ভব করা সম্ভব সংস্করণের অসঙ্গতিগুলির তুলনায় কম।

এখন, কখনও কখনও আপনি কেবল একটি এইচটিএমএল খণ্ডের চেয়েও বেশি কিছু চান। উদাহরণস্বরূপ, একটি স্থিতি কোড এবং একটি এইচটিএমএল খণ্ড। তারপরে আপনি এমন একটি JSON অবজেক্ট ব্যবহার করতে পারেন যার দুটি সদস্য রয়েছে, স্ট্যাটাস কোড এবং এইচটিএমএল যার মধ্যে দ্বিতীয়টি স্থিতি কোডটি যাচাই করার পরে কিছু উপাদানটির ইনার এইচটিএমএলকে দেওয়া যেতে পারে। সুতরাং, জেএসএন ব্যবহার এবং অভ্যন্তরীণ এইচটিএমএল ব্যবহার কোনওভাবেই বিকল্প এক্সক্লুসিভ পদ্ধতির নয়; তারা একসাথে ব্যবহার করা যেতে পারে।

জেএসএন ব্যবহার করে আপনার এমনকি একই প্রতিক্রিয়াতে একাধিক এইচটিএমএল টুকরা থাকতে পারে যা একাধিক উপাদানগুলির .innerHTML কে অর্পণ করা হয়।

সংক্ষেপে: .innerHTML ব্যবহার করুন। এটি আপনার কোডটিকে যথাসম্ভব ব্রাউজার সংস্করণের সাথে সামঞ্জস্য করে। যদি আরও প্রয়োজন হয় তবে JSON এবং .innerHTML একসাথে ব্যবহার করুন। এক্সএমএল এড়িয়ে চলুন।


4

নীতিগতভাবে কোনও ভুল নেই । প্রশ্নটি: আপনি কী অর্জন করতে চান?

JSON ডেটা সংক্রমণ করার জন্য উপযুক্ত। আপনি যদি পরিবর্তে এইচটিএমএল প্রেরণ করেন এবং ক্লায়েন্টটি এইচটিএমএল থেকে ডেটা উত্তোলনের আশা করেন তবে এটি আবর্জনা।

অন্যদিকে, আপনি যদি এইচএমটিএল প্রেরণ করতে চান যা এইচটিএমএল হিসাবে রেন্ডার হতে চলেছে, তবে এটি এইচটিএমএল হিসাবে প্রেরণ করুন - এইচটিএমএলকে একটি স্ট্রিংয়ে প্যাক করার পরিবর্তে, স্ট্রিংটিকে জেএসওনে রূপান্তরিত করে, জেএসএন সংক্রমণ করে, অন্যদিকে ডিকোডিং করুন , একটি স্ট্রিং পাওয়া এবং স্ট্রিং থেকে এইচটিএমএল উত্তোলন।

এবং ঠিক গতকালই আমি এমন কোডে দৌড়েছি যা দুটি আইটেমকে একটি অ্যারেতে ফেলেছে, অ্যারেটিকে জেএসওনে পরিণত করেছে, জেএসওএনকে একটি স্ট্রিংয়ে রেখেছে, স্ট্রিংটিকে একটি অ্যারের ভিতরে রেখেছে, পুরো অ্যারেটিকে জেএসএনে পরিণত করেছে, ক্লায়েন্টকে প্রেরণ করেছে, যা ডিকোড হয়েছে জেএসএন, একটি স্ট্রিংযুক্ত একটি অ্যারে পেয়েছে, স্ট্রিংটি নিয়েছে, স্ট্রিং থেকে জেএসওএনটি বের করে, জেএসওনকে ডিকোড করেছে এবং দুটি আইটেম সহ একটি অ্যারে পেয়েছে। এটা করবেন না।


+1 একদম ঠিক। প্রথম প্রশ্নটি হল, আপনার কী গ্রহণ করা দরকার? কিছুটা এইচটিএমএল, বা সম্ভবত একটি পাদলেখ, বা অনুরূপ উপাদান হিসাবে একটি এন্ডপয়েন্ট পয়েন্ট সাইডবার বিজ্ঞাপনগুলি ফিরে আসার সাথে সামান্য ভুল হবে।
এসকিউবি

3

এটি সমস্তই এপিআই-এর উদ্দেশ্য নির্ভর করে, তবে সাধারণত আপনি যা বর্ণনা করেন তা উদ্বেগের বিচ্ছিন্নতার এক কঠোর লঙ্ঘন :

একটি আধুনিক অ্যাপ্লিকেশনটিতে, API কোড কোডের জন্য দায়বদ্ধ হওয়া উচিত, এবং ক্লায়েন্ট কোড উপস্থাপনের জন্য দায়বদ্ধ হতে হবে।

যখন আপনার এপিআই এইচটিএমএল ফিরিয়ে দেয়, আপনি নিজের ডেটা এবং উপস্থাপনাটি দৃly়তার সাথে মিলিয়ে যাচ্ছেন। যখন এইচটিএমএল এইচটিএমএল ফিরিয়ে দেয়, তখন আপনি এইচটিএমএলটি দিয়ে কেবল সহজেই (সহজেই) এটি করতে পারেন এটি কোনও বৃহত পৃষ্ঠার কিছু অংশ হিসাবে প্রদর্শিত হয়। ভিন্ন কোণ থেকে, API এর জন্য কেবলমাত্র API ভাল যা আপনার পৃষ্ঠাকে এইচটিএমএল সরবরাহ করে। এছাড়াও, আপনি ক্লায়েন্ট এবং সার্ভার কোড উভয় জুড়ে আপনার HTML ছড়িয়ে দিয়েছেন। এটি রক্ষণাবেক্ষণকে মাথা ব্যথার সৃষ্টি করতে পারে।

যদি আপনার এপিআই JSON, বা খাঁটি ডেটা অন্য কোনও ফর্ম ফেরত দেয়, তবে এটি অনেক বেশি দরকারী হয়ে ওঠে। বিদ্যমান অ্যাপ্লিকেশনটি এখনও সেই ডেটা গ্রাস করতে পারে এবং যথাযথভাবে উপস্থাপন করতে পারে। এখন, অন্য জিনিসগুলি একই ডেটা অ্যাক্সেস করতে এপিআই ব্যবহার করতে পারে। আবারও, রক্ষণাবেক্ষণ করা সহজ - সমস্ত এইচটিএমএল এক জায়গায় থাকে, তাই আপনি যদি পুরো সাইটটিকে পুনরায় স্টাইল করতে চান তবে আপনার এপিআই পরিবর্তন করার দরকার নেই।


5
"একটি আধুনিক অ্যাপ্লিকেশনটিতে, API কোড কোডের জন্য দায়বদ্ধ হওয়া উচিত, এবং ক্লায়েন্ট কোড উপস্থাপনের জন্য দায়বদ্ধ হতে হবে।" কেন সবসময় এমন হওয়া উচিত? আমি একমত যে এটি একটি সাধারণ প্যাটার্ন এবং এটি নির্দিষ্ট কিছু জিনিসকে সহজ করে তোলে তবে আমি এটিকে "উচিত" এর স্তরে উন্নীত করার কোনও কারণ দেখি না ... এটি এমন সিদ্ধান্ত যা কেস ভিত্তিতে মামলা করা উচিত, এবং এমন কিছু কারণ রয়েছে যা কিছু পরিস্থিতিতে আপনি আলাদা সিদ্ধান্ত নিতে চাইতে পারেন।
জুলে

@ জুলস কারণ আপনার যদি একটি এপিআই এবং ক্লায়েন্ট থাকে তবে উভয়ই রেন্ডারিংয়ের দায়িত্বে থাকা উদ্বেগকে পৃথক করার লঙ্ঘন। (এখন, আপনার কাছে অগত্যা কোনও এপিআই এবং ক্লায়েন্ট নেই You আপনার কেবলমাত্র একটি উপাদান থাকতে পারে এবং এটি সম্পূর্ণ উপস্থাপনা করতে পারেন But তবে তারপরে আপনার কোনও এপিআই নেই)
njzk2

@ njzk2 কেবলমাত্র একটি API এইচটিএমএল ডেটা সরবরাহ করার অর্থ এই নয় যে এটি এটি রেন্ডার করেছে। এটি এইচটিএমএলটিকে একটি ব্লব হিসাবে বিবেচনা করে এবং এটি একটি ডেটাবেজে সংরক্ষণ করে। এছাড়াও, ক্লায়েন্টের পরিবর্তে সার্ভারে কিছু রেন্ডারিংয়ের প্রয়োজন হতে পারে (উদাঃ সার্চ ইঞ্জিনগুলির জন্য স্ট্যাটিক পৃষ্ঠাগুলি সরবরাহ করা) যাতে পুনরায় ব্যবহারের ক্ষমতাটিকে সদৃশতা অপসারণ হিসাবে দেখা যায়।
জুলে

1
এছাড়াও, ক্লায়েন্ট এবং এপিআই জুড়ি উত্পাদন করা সম্পূর্ণভাবে সম্ভব যেখানে সার্ভারে সমস্ত রেন্ডারিং ঘটে এবং ক্লায়েন্ট কেবল এটির ডমের পূর্বনির্ধারিত স্লটে এইচটিএমএল সরবরাহ করে। জ্যাকুরির কাছে এই ধরণের ক্লায়েন্টকে নিবেদিত একটি সম্পূর্ণ মডিউল রয়েছে, যা আমার কাছে পরামর্শ দেয় যে তারা অবশ্যই যুক্তিসঙ্গতভাবে সাধারণ হতে হবে।
জুলে

1
@ জুলস প্রচুর জিনিস যুক্তিসঙ্গতভাবে সাধারণ, এটি যুক্তিযুক্ত হওয়ার কারণ নয়।
njzk2

2

এইচটিএমএল একটি নির্দিষ্ট নকশা এবং ব্যবহারের সাথে আবদ্ধ।

এইচটিএমএল সহ, আপনি যদি পৃষ্ঠার বিন্যাস পরিবর্তন করতে চান তবে আপনাকে এইচটিএমএল কীভাবে সার্ভার কল দ্বারা উত্পন্ন হয় তা পরিবর্তন করতে হবে। সাধারণত, এর জন্য একটি ব্যাক-এন্ড প্রোগ্রামার প্রয়োজন। এখন আপনার কাছে ব্যাক-এন্ড প্রোগ্রামার রয়েছে, যারা সংজ্ঞা অনুসারে আপনার সেরা এইচটিএমএল লেখক নয়, এই আপডেটগুলি পরিচালনা করছেন।

JSON এর সাথে, পৃষ্ঠার বিন্যাসটি পরিবর্তিত হলে, বিদ্যমান জেএসএন সার্ভার কলটি অগত্যা মোটেই বদলাতে হবে না। পরিবর্তে, আপনার সামনের-শেষ বিকাশকারী, এমনকি ডিজাইনারও একই বেসিক ডেটা থেকে আপনি যে বিভিন্ন HTML চান তা তৈরি করতে টেমপ্লেট আপডেট করে।

অতিরিক্তভাবে, জেএসওএন অন্যান্য পরিষেবার জন্য ভিত্তি হয়ে উঠতে পারে। আপনার বিভিন্ন ভূমিকা থাকতে পারে যা একই উপায়ে বিভিন্ন উপায়ে দেখতে প্রয়োজন। উদাহরণস্বরূপ, আপনার কাছে একটি গ্রাহক ওয়েব সাইট থাকতে পারে যা কোনও অর্ডার পৃষ্ঠায় কোনও পণ্য সম্পর্কিত ডেটা এবং রেপসগুলির জন্য একটি অভ্যন্তরীণ বিক্রয় পৃষ্ঠা থাকতে পারে যা একই উপাত্তকে খুব আলাদা লেআউটে দেখায়, সম্ভবত সাধারণ গ্রাহকদের কাছে উপলভ্য কিছু অন্যান্য তথ্যও রয়েছে। জেএসএন এর মাধ্যমে একই সার্ভার কলটি উভয় দর্শনেই ব্যবহার করা যেতে পারে।

অবশেষে, জেএসএন আরও ভাল স্কেল করতে পারে। সাম্প্রতিক বছরগুলিতে আমরা ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্ট ফ্রেমওয়ার্কগুলির সাথে একরকম ওভারবোর্ড করেছি। আমি মনে করি যে সময়টি আসলে একটি পদক্ষেপ নেওয়ার এবং আমরা কী জাভাস্ক্রিপ্টটি ব্যবহার করছি এবং এটি কীভাবে ব্রাউজারের কার্য সম্পাদনকে প্রভাবিত করে ... বিশেষত মোবাইল ডিভাইসে। এটি বলেছে, আপনি যদি একটি সার্ভারের পরিবর্তে কোনও সার্ভার ফার্ম বা ক্লাস্টারের প্রয়োজনের জন্য যথেষ্ট বড় কোনও সাইট চালাচ্ছেন তবে জেএসএন আরও ভাল স্কেল করতে পারে। ব্যবহারকারীরা আপনাকে তাদের ব্রাউজারগুলিতে বিনামূল্যে প্রসেসিংয়ের সময় দেবে এবং আপনি যদি এর সদ্ব্যবহার করেন তবে আপনি একটি বড় স্থাপনায় সার্ভারের লোড হ্রাস করতে পারবেন। আপনি যথেষ্ট বড় হলে জেএসএনও কম ব্যান্ডউইথ ব্যবহার করে bigএবং এটি যথাযথভাবে ব্যবহার করুন, জেএসওন পরিমাপযোগ্য সস্তা। অবশ্যই, এটি আরও খারাপ স্কেল করতে পারে, যদি আপনি 40 কেবি লাইব্রেরিগুলিকে এইচটিএমএল 7KB এর 2KB ডেটা পার্স করার জন্য শেষ করেন, তবে আপনি কী করছেন সে সম্পর্কে সচেতন হওয়ার জন্য এটি অর্থ প্রদান করে। তবে জেএসএনের কর্মক্ষমতা এবং ব্যয় উন্নত করার সম্ভাবনা রয়েছে।


1

যদি এর প্রয়োজনীয়তাগুলি পূরণ করে তবে এ জাতীয় একটি শেষ পয়েন্টে কোনও দোষ নেই। যদি কোনও এইচটিএমএল ছিটানোর প্রয়োজন হয় যে কোনও পরিচিত গ্রাহক কার্যকরভাবে পার্স করতে পারেন, নিশ্চিত, কেন নয়?

সমস্যাটি হ'ল, সাধারণ ক্ষেত্রে, আপনি চান যে আপনার শেষ পয়েন্টগুলি এমন কোনও পে-লোড স্পিট করবে যা একটি আদর্শ পার্সার দ্বারা সুগঠিত এবং কার্যকরভাবে পার্স-সক্ষম। এবং কার্যকরভাবে পার্স-সক্ষম দ্বারা, মানে, ঘোষণামূলকভাবে পার্স-সক্ষম।

যদি আপনার ক্লায়েন্ট বাধ্য হয়ে বাধ্যতামূলকভাবে পেডলোড এবং এটি থেকে লুপ এবং যদি বিবৃতি দিয়ে ওপেন ইনফরমেশন বিটগুলি পড়েন তবে কার্যকরভাবে এটি পার্স-সক্ষম হয় না। এবং এইচটিএমএল, এর উপায় হওয়ায় এটি নিজেকে সু-গঠনের প্রয়োজনে খুব ক্ষমা করা হচ্ছে।

এখন, আপনি যদি নিশ্চিত হন যে আপনার এইচটিএমএলটি এক্সএমএল-অনুগত, তবে আপনি সোনার।

এই বলে যে, আমার এটির সাথে একটি উল্লেখযোগ্য সমস্যা রয়েছে:

আমি আপনাকে এটি বলতে যাচ্ছি: এমন একটি শেষ বিন্দু যা এইচটিএমএল ফেরত দেয় যা জাভাস্ক্রিপ্ট লাইব্রেরিতে আপনার নির্ভরতা হ্রাস করে এবং ব্যবহারকারী ব্রাউজারে বোঝা হ্রাস করে যেহেতু ডিওএম অবজেক্ট তৈরি করতে জেএস কোডটি ব্যাখ্যা / সম্পাদন করতে হবে না - এইচটিএমএল ইতিমধ্যে রয়েছে, এটি কেবলমাত্র উপাদানগুলিকে পার্স করা এবং রেন্ডার করার বিষয়। অবশ্যই, এর অর্থ আমরা যুক্তিসঙ্গত পরিমাণের ডেটা সম্পর্কে কথা বলছি। এইচটিএমএল ডেটা 10 মেগাবাইট যুক্তিসঙ্গত নয়।

আপনি এটি কেটে না কেন এটি একটি খারাপ ধারণা। দশকের দশক সম্মিলিত শিল্প অভিজ্ঞতা আমাদের দেখিয়েছে যে, সাধারণত, তথ্য (বা মডেল) এর প্রদর্শন (বা দেখুন) থেকে আলাদা করা ভাল ধারণা is

দ্রুত জেএস কোড কার্যকর করার উদ্দেশ্যে আপনি এখানে দুটিকে বিভ্রান্ত করছেন। এবং এটি একটি মাইক্রো অপ্টিমাইজেশন।

খুব তুচ্ছ সিস্টেম ছাড়া আমি এটিকে কখনও ভাল ধারণা হিসাবে দেখিনি।

আমার পরামর্শ? এটা করবেন না। এইচসি এসভিএনটি ড্রাগস , ওয়াইএমএমভি, ইত্যাদি


0

জেএসএন হ'ল কাঠামোগত ডেটার একটি পাঠ্য উপস্থাপনা। ডেটা প্রক্রিয়া করার জন্য কোনও ক্লায়েন্টের স্বাভাবিকভাবেই পার্সার থাকা প্রয়োজন তবে কার্যত সমস্ত ভাষায় JSON পার্সার ফাংশন রয়েছে। এইচটিএমএল পার্সার ব্যবহারের চেয়ে জেএসএন পার্সার ব্যবহার করা আরও বেশি দক্ষ। এটি সামান্য পদচিহ্ন লাগে। এইচটিএমএল পার্সার দিয়ে নয়।

পিএইচপি-তে, আপনি কেবল ব্যবহার করেন json_encode($data)এবং এটি পার্স করার জন্য এটি অন্যদিকে থাকা ক্লায়েন্টের। এবং আপনি যখন কোনও ওয়েব পরিষেবা থেকে জেএসএন ডেটা আনেন, আপনি কেবল ব্যবহার করেন $data=json_decode($response)এবং আপনি কীভাবে ভেরিয়েবলগুলির সাথে কীভাবে ডেটা ব্যবহার করবেন তা সিদ্ধান্ত নিতে পারেন।

মনে করুন আপনি একটি মোবাইল ডিভাইসের জন্য একটি অ্যাপ্লিকেশন বিকাশ করেছেন, যখন মোবাইল অ্যাপ্লিকেশন খুব কমই ডেটা পার্স করতে ওয়েব ব্রাউজার ব্যবহার করে তবে আপনার এইচটিএমএল ফর্ম্যাটটির কী দরকার? অনেকগুলি মোবাইল অ্যাপ্লিকেশন ডেটা আদান-প্রদানের জন্য জেএসএন (সর্বাধিক সাধারণ ফর্ম্যাট) ব্যবহার করে।

মোবাইলগুলি প্রায়শই মিটার প্ল্যানগুলিতে থাকে তা বিবেচনা করে আপনি কেন এইচটিএমএল ব্যবহার করতে চান যা জেএসএনের চেয়ে অনেক বেশি ব্যান্ডউইথ লাগে?

এইচএমটিএল কেন ব্যবহার করবেন যখন এইচটিএমএল এর শব্দভাণ্ডারে সীমাবদ্ধ থাকে এবং জেএসএন ডেটা সংজ্ঞায়িত করতে পারে? {"person_name":"Jeff Doe"}এইচটিএমএল তার ডেটা সম্পর্কে আরও তথ্য সরবরাহ করতে পারে যেহেতু এটি কেবলমাত্র HTML পার্সারগুলির জন্য কাঠামো সংজ্ঞায়িত করে, ডেটা সংজ্ঞায়িত করে না।

জেএসএনের এইচটিটিপি-র কোনও সম্পর্ক নেই। আপনি একটি ফাইলের মধ্যে JSON রাখতে পারেন। আপনি এটি কনফিগারেশনের জন্য ব্যবহার করতে পারেন। সুরকার জেএসএন ব্যবহার করেন। আপনি এটি ফাইলগুলিতে সাধারণ ভেরিয়েবলগুলি সংরক্ষণ করতেও ব্যবহার করতে পারেন।


0

একটি সঠিক বা একটি ভুল শ্রেণীবদ্ধ করা কঠিন। আইএমও, আমি যে প্রশ্নগুলি জিজ্ঞাসা করব সেগুলি হ'ল " এটি হওয়া উচিত ", বা " এটি কম দিয়ে কি করতে পারে? "

প্রতিটি শেষ পয়েন্টটি যতটা সম্ভব সামান্য সামগ্রীর সাথে যোগাযোগের জন্য প্রচেষ্টা করা উচিত। সংকেত-থেকে-শোর অনুপাতটি সাধারণত HTTP কোড <জেএসএন <এক্সএইচটিএমএল। বেশিরভাগ পরিস্থিতিতে, সর্বনিম্ন কোলাহলপূর্ণ প্রোটোকলটি বেছে নেওয়া ভাল।

@ মাকাদো দ্বারা ক্লায়েন্ট ব্রাউজার লোড সম্পর্কে আমি এই মতামতটিতে পৃথক, যেমন আধুনিক ব্রাউজারগুলির সাথে এটি একটি নন-ইস্যু। তাদের বেশিরভাগই HTTP কোডগুলি এবং JSON প্রতিক্রিয়াগুলি বেশ ভালভাবে মোকাবেলায় সজ্জিত। এবং এই মুহুর্তে আপনার কাছে পরীক্ষা না থাকলেও কম গোলমাল প্রোটোকলের দীর্ঘমেয়াদী রক্ষণাবেক্ষণ তার উপরেরটির চেয়ে সস্তা হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.