জেএসএনের পরিবর্তে উত্পন্ন এইচটিএমএল ফিরিয়ে দেওয়া কেন খারাপ অভ্যাস? অথবা এটা?


301

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

তবে সমস্ত বই, সমস্ত বিশেষজ্ঞ আমাকে উত্পন্ন এইচটিএমএল পরিবর্তে জেএসএন ব্যবহার করার চেষ্টা করছেন। এটি এইচটিএমএল থেকে অনেক বেশি উন্নত কিভাবে?

এটা কি খুব দ্রুত?
এটি সার্ভারে খুব কম লোড আছে?

অন্যদিকে উত্পন্ন এইচটিএমএল ব্যবহারের আমার কিছু কারণ রয়েছে have

  1. এটি সাধারণ মার্কআপ এবং প্রায়শই ঠিক কমপ্যাক্ট হিসাবে বা আসলে জেএসএনের চেয়ে আরও কমপ্যাক্ট।
  2. এটি কম ত্রুটিযুক্ত প্রবণ কারণ হ'ল মার্কআপ, এবং কোনও কোড নয় and
  3. বেশিরভাগ ক্ষেত্রে প্রোগ্রাম করা আরও দ্রুত হবে কারণ ক্লায়েন্টের শেষের জন্য আপনাকে আলাদাভাবে কোড লিখতে হবে না।

আপনি কোন দিকে আছেন এবং কেন?


এটি লক্ষণীয় যে এজেএক্সের এক্সটি এক্সএমএল, এবং এক পর্যায়ে এইচটিএমএলকে এক্সএমএল হওয়ার কথা ছিল। এই ধারণাটি ছিল যে এইচটিএমএল হ'ল মানব এবং মেশিন রিডেবল ডেটা (জেএসওনের মতো), এবং সিএসএস উপস্থাপনাটি করবে। এই শর্তগুলির অধীনে, এটি AJAX অনুরোধে এইচটিএমএল প্রেরণে "উদ্বেগের বিচ্ছেদ" লঙ্ঘন করবে না
কোড_মঙ্ক

উত্তর:


255

আমি উভয় পক্ষের কিছুটা, আসলে:

  • যখন জাভাস্ক্রিপ্টের দিকে আমার যা দরকার তা ডেটা হয় , তখন আমি জেএসএন ব্যবহার করি
  • যখন জাভাস্ক্রিপ্টের দিকে আমার যা প্রয়োজন তা উপস্থাপনা যখন আমি কোনও গণনা করব না, আমি সাধারণত এইচটিএমএল ব্যবহার করি

এইচটিএমএল ব্যবহারের প্রধান সুবিধা হ'ল আপনি যখন নিজের পৃষ্ঠার পুরো অংশটি অ্যাজাক্স অনুরোধ থেকে ফিরে আসবে তার সাথে প্রতিস্থাপন করতে চান:

  • জেএসে পৃষ্ঠার একটি অংশ পুনর্নির্মাণ করা (বেশ) শক্ত
  • আপনার কাছে সম্ভবত সার্ভারের দিকে কিছু টেম্প্লেটিং ইঞ্জিন রয়েছে, এটি পৃষ্ঠাটি প্রথম স্থানে তৈরি করতে ব্যবহৃত হয়েছিল ... কেন এটি পুনরায় ব্যবহার করবেন না?

আমি সাধারণত "পারফরম্যান্স" বিষয়গুলির দিকে বিবেচনা করি না, কমপক্ষে সার্ভারে:

  • সার্ভারে, এইচটিএমএল বা কিছু জেএসওনের একটি অংশ তৈরি করা সম্ভবত এতটা পার্থক্য তৈরি করবে না
  • নেটওয়ার্কের মাধ্যমে যে স্টাফগুলি যায় সেগুলির আকার সম্পর্কে: ভাল, আপনি সম্ভবত শত শত কেবি ডাটা / এইচটিএমএল ব্যবহার করবেন না ... আপনি যা কিছু স্থানান্তরিত করছেন তাতে জিজিপ ব্যবহার করা সবচেয়ে বড় পার্থক্য আনতে চলেছে (এইচটিএমএল মধ্যে নির্বাচন না করা) এবং জেএসএন)
  • একটি বিষয় যা বিবেচনায় নেওয়া যেতে পারে তা হ'ল এইচটিএমএলটি পুনরায় তৈরি করতে আপনার ক্লায়েন্টের জন্য কী সংস্থান দরকার JSON ডেটা থেকে আপনার (বা DOM কাঠামো) ... তার সাথে তুলনা করুন HTML এর কোনও অংশ পৃষ্ঠাতে ঠেলাতে; -)

অবশেষে, একটি বিষয় যা সুনির্দিষ্টভাবে গুরুত্বপূর্ণ:

  • এমন একটি নতুন সিস্টেম বিকাশ করতে আপনার কতক্ষণ সময় লাগবে যা JSON + কোড হিসাবে ডেটা প্রেরণ করবে JSON + কোড হিসাবে পৃষ্ঠাটিতে এইচটিএমএল হিসাবে ইনজেক্ট করতে প্রয়োজনীয় জেএস?
  • এইচটিএমএল ফিরে আসতে কত সময় লাগবে? এবং আপনি যদি ইতিমধ্যে বিদ্যমান কিছু সার্ভার সাইড কোডটি আবার ব্যবহার করতে পারেন তবে?


এবং অন্য উত্তরের উত্তর দেওয়ার জন্য: যদি আপনাকে পৃষ্ঠার একাধিক অংশ আপডেট করতে হয় তবে এখনও একটি বড় স্ট্রিংয়ের মধ্যে parts সমস্ত অংশ প্রেরণ করার সমাধান / হ্যাক রয়েছে যা বেশ কয়েকটি এইচটিএমএল অংশকে গ্রুপ করে এবং জেএসের প্রাসঙ্গিক অংশগুলি বের করে ract

উদাহরণস্বরূপ, আপনি এমন কিছু স্ট্রিং প্রত্যাবর্তন করতে পারেন যা দেখে মনে হচ্ছে:

<!-- MARKER_BEGIN_PART1 -->
here goes the html
code for part 1
<!-- MARKER_END_PART1 -->
<!-- MARKER_BEGIN_PART2 -->
here goes the html
code for part 2
<!-- MARKER_END_PART2 -->
<!-- MARKER_BEGIN_PART3 -->
here goes the json data
that will be used to build part 3
from the JS code
<!-- MARKER_END_PART3 -->

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

... এবং এগুলি বের করার জন্য, জেএস সাবস্ট্রিং পদ্ধতিটি কৌশলটি করবে, আমি মনে করি ;-)


6
সমস্ত ডেটা শেষ পর্যন্ত উপস্থাপনা।
সাইরিল গুপ্ত

47
@ সাইরিল: হাহ? আমি মনে করি আপনি এই ডেটাটি ব্যবহার করার জন্য বলার চেষ্টা করছেন, এটি ব্যবহার করতে হবে এবং এইভাবে কোনও কোনও আকারে উপস্থাপন করতে হবে এবং আমি সম্মত। কিন্তু যদি বলা হয় যে ডেটা হল , উপস্থাপনা বিপথে চালিত বলে মনে হয় অন্ততপক্ষে।
ভিঙ্কো ভার্সালভিক

10
হাই ভিঙ্কো, 'শেষ পর্যন্ত' খেয়াল কর? আমি যা বলতে চাইছি ঠিক তাই বলছি। এখানে কেবল উদ্ধৃত উদ্ধৃতিগুলির বইয়ের ভিতরে যাওয়ার চেষ্টা করছি। হা হা!
সাইরিল গুপ্ত

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

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

114

আমি এখানে বর্ণিত মতামতের সাথে প্রধানত একমত। আমি কেবল তাদের সংক্ষিপ্ত বিবরণ দিতে চেয়েছিলাম:

  • এটিতে কিছু গণনা করার জন্য আপনি যদি ক্লায়েন্ট-পার্স পার্সিং করে শেষ করেন তবে এইচটিএমএল প্রেরণ করা খারাপ অভ্যাস।

  • JSON প্রেরণ করা খারাপ অভ্যাস যা আপনি শেষ করছেন এমন সবই যদি পৃষ্ঠার ডোম গাছের সাথে অন্তর্ভুক্ত করা হয়।


3
আপনার যদি কিছু গণনা করার দরকার হয় এবং এটি পৃষ্ঠার ডিওমে অন্তর্ভুক্ত করে তবে কী হবে?
এনরিক

আমি অবাক হই যে উপরোক্ত বিবৃতিটির সাথে কতক্ষণ সত্যতা যুক্ত থাকবে, আপনি যদি " জ্ঞানের অর্ধ জীবন " সমীকরণে যুক্ত করেন?
Val,

পৃষ্ঠাটি লোড হওয়ার সাথে সাথে কী এইচটিএমএল << স্ক্রিপ্ট> ট্যাগ রয়েছে এবং তারপরে ক্লায়েন্টের পাশে এগুলি কার্যকর করা সম্ভব?
নিশ 1013

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

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

30

আমরা হব,

আমি সেই বিরল ব্যক্তিদের মধ্যে একজন যারা এইভাবে জিনিসগুলি পৃথক করতে পছন্দ করি: - সার্ভার ডেটা সরবরাহ করার জন্য দায়ী (মডেল); - ক্লায়েন্ট ডেটা (মডেল) দেখানোর জন্য এবং দেখার জন্য দায়বদ্ধ;

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

এছাড়াও, এই পদ্ধতির ফলে উত্পাদনশীলতা বৃদ্ধি পায়, যেহেতু সার্ভার এবং ক্লায়েন্ট কোড একই সাথে নির্মিত হতে পারে, ফোকাসটি হারাবেন না যা যখন আপনি জেএস থেকে পিএইচপি / জেভিএ / ইত্যাদিতে স্যুইচ করতে থাকবেন তখনই ঘটে focus

সাধারণত, আমি মনে করি বেশিরভাগ লোকেরা সার্ভার সাইডে যতটা সম্ভব সম্ভব করতে পছন্দ করে কারণ তারা জেএস মাস্টার করে না, তাই তারা এটিকে যথাসম্ভব এড়াতে চেষ্টা করে।

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


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

9

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

এটা দেখ:

public JsonResult MyJsonObject(string someData)
{
     return Json(new { SomeData = someData, PartialView = RenderPartialViewToString("JsonPartialView", null) }, JsonRequestBehavior.AllowGet);
}

আপনি জিজ্ঞাসা করতে পারেন রেন্ডার পার্টিয়ালভিউ টুস্ট্রিং () কী? এটি এখানে শীতলতার এই ছোট্ট নকশা:

protected string RenderPartialViewToString(string viewName, object model)
{
     ViewData.Model = model;

     using (StringWriter sw = new StringWriter())
     {
          ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
          ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
          viewResult.View.Render(viewContext, sw);

          return sw.GetStringBuilder().ToString();
     }
}

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

আমার হাইব্রিড সম্পর্কে আপনি কী ভাবছেন তা আমাকে জানান!


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

8

যদি প্রতিক্রিয়াটির জন্য আর ক্লায়েন্ট-সাইড প্রসেসিংয়ের প্রয়োজন হয় না, HTML আমার মতে ঠিক আছে opinion JSON প্রেরণ করা আপনাকে কেবল সেই ক্লায়েন্ট-সাইড প্রসেসিং করতে বাধ্য করবে।

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


7

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


6

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

অন্যদিকে, সার্ভার থেকে খাঁটি ডেটা প্রেরণ আপনি এটিকে উপস্থাপনা থেকে বিমূর্ত করেন, আগামীকাল যদি আপনি এটি পরিবর্তন করতে চান বা আপনার ডেটাটিকে অন্য পরিষেবাতে সংহত করতে চান আপনি এটি আরও সহজ করতে পারেন।

শুধু আমার 2 সেন্ট।


এবং জাভাস্ক্রিপ্ট অক্ষম থাকলে আপনি কীভাবে একটি পঠনযোগ্য পৃষ্ঠা পাবেন তা নিশ্চিত করবেন?
ভিঙ্কো ভার্সালোভিক

8
যদি জেএস অক্ষম থাকে তবে আপনি এইচটিএমএলও লোড করতে পারবেন না। আমার গুগল অ্যানালিটিক্সের পরিসংখ্যান অনুসারে জেএস 2.3% ব্যবহারকারীর উপর অক্ষম রয়েছে। নামার সর্বোত্তম উপায় হ'ল সকলকে খুশি করার চেষ্টা করা।
মাইক

4
আমি মাইকের সাথে 100% সম্মত প্রত্যেককে খুশি করার চেষ্টা করা অসম্ভব এবং কেবল আপনাকেই ক্ষতি করবে। যদি ব্যবহারকারীরা জেএস বন্ধ করে রাখে তবে তাদের অবশ্যই এখন অবধি অনেকগুলি সাইটগুলিতে ব্যবহার করা উচিত them
শেভ

1
বিশ্লেষণী ডেটা ট্র্যাক করতে জাভাস্ক্রিপ্ট ব্যবহার করায় আপনি কীভাবে বিশ্লেষণে জাভাস্ক্রিপ্টের পরিসংখ্যান পাবেন?
নিক

ভালো প্রশ্ন @Nick, কিন্তু আমি এই পাওয়া যায়নি: stackoverflow.com/questions/15265883/...
Renan Cavalieri

6

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

সার্ভারের পক্ষটি কেবলমাত্র ডেটা সরবরাহ করার দিকে মনোনিবেশ করে।

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


1
আমি সম্মত, এছাড়াও আপনি নিজের মোবাইল অ্যাপ্লিকেশনটির জন্য জসন পুনরায় ব্যবহার করতে পারেন।
অ্যালেক্স শিলম্যান

এটি স্বীকৃত উত্তর হওয়া উচিত - প্রথম - - words টি শব্দের উত্তরটি সংক্ষিপ্তভাবে দিয়েছিল।
নিকোলাসউমিন

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

4

আপনার ইউআই এর উপর নির্ভর করে আপনার ডিওমে দুটি (বা আরও) বিভিন্ন উপাদান আপডেট করতে হতে পারে। যদি আপনার প্রতিক্রিয়াটি এইচটিএমএলতে থাকে, আপনি কি পার্স করতে যাচ্ছেন তা বোঝার জন্য কোথায় যায়? অথবা আপনি কেবল একটি JSON হ্যাশ ব্যবহার করতে পারেন।

আপনি এমনকি এটি একত্রিত করতে পারেন, একটি JSON ডাব্লু / এইচটিএমএল ডেটা ফেরত দিতে পারেন :)

{ 'dom_ele_1' : '<p>My HTML part 1</p>', 'dome_ele_2' : '<div>Your payment has been received</div>' }

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

2

এইচটিএমএল অনেকগুলি রিলানডেন্ট এবং প্রদর্শিত না হওয়া তথ্য যেমন ট্যাগ, স্টাইল শীট ইত্যাদি রয়েছে So


1

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


FWIW, innerHTML একটি নথি খণ্ডের তুলনায় historতিহাসিকভাবে অনেক ধীর: coderwall.com/p/o9ws2g/…
নেট হুইটেকার

0

আমি মনে করি এটি ডিজাইনের কাঠামোর উপর নির্ভর করে, এটি এইচটিএমএল এর চেয়ে জেএসওএন ব্যবহার করার জন্য আরও সেক্সি is

উদাহরণস্বরূপ, বলুন আমার কাছে লিস্টিং পৃষ্ঠা রয়েছে যা পুরো সাইটের একই html / শৈলীটি ব্যবহার করে, আমি এইচটিএমএলের সেই অংশগুলিকে বিন্যাস করতে বিশ্বব্যাপী ফাংশনটি লিখব এবং আমাকে যা করতে হবে তা হল JSON অবজেক্টটিকে ফাংশনটিতে পাস করা।


0

বেশিরভাগ ক্ষেত্রেই এইচটিএমএল প্রতিক্রিয়া যথেষ্ট unless


0

পরিস্থিতিতে উপর নির্ভর করে।

কখনও কখনও এটি JSON এড়ানোর জন্য প্রয়োজনীয়। যখন আমাদের প্রোগ্রামারদের js তে প্রোগ্রামিং করতে সমস্যা হয়, উদাহরণস্বরূপ।

আমার অভিজ্ঞতা আমাকে বলেছে: ইনলাইন জেএসওনের চেয়ে অজ্যাক্স পরিষেবাটি আরও ভাল ব্যবহার করুন।

শীঘ্রই বা পরে জেএস একটি সমস্যা হয়ে ওঠে

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