প্রকাশিত: ২২ জুলাই, ২০২১
রাউটিং প্রতিটি ওয়েব অ্যাপ্লিকেশনের একটি গুরুত্বপূর্ণ অংশ। এর মূলে, রাউটিং একটি URL নেয়, এতে একটি প্যাটার্ন ম্যাচিং বা অন্যান্য অ্যাপ-নির্দিষ্ট লজিক প্রয়োগ করে এবং তারপর, সাধারণত, ফলাফলের উপর ভিত্তি করে ওয়েব সামগ্রী প্রদর্শন করে। রাউটিং বিভিন্ন উপায়ে প্রয়োগ করা যেতে পারে:
- সার্ভার কোড যা ডিস্কের ফাইলগুলির পাথ ম্যাপ করে
- একটি একক-পৃষ্ঠার অ্যাপে লজিক যা বর্তমান অবস্থানের পরিবর্তনের জন্য অপেক্ষা করে, তারপর DOM-এর একটি সংশ্লিষ্ট অংশ তৈরি করে এবং প্রদর্শন করে।
যদিও কোনও নির্দিষ্ট মান নেই, ওয়েব ডেভেলপাররা URL রাউটিং প্যাটার্ন প্রকাশের জন্য একটি সাধারণ সিনট্যাক্সের দিকে ঝুঁকছেন যা regular expressions সাথে অনেক মিল রয়েছে, তবে কিছু ডোমেন-নির্দিষ্ট সংযোজন যেমন পাথ সেগমেন্টের সাথে মিলের জন্য টোকেন। এক্সপ্রেস এবং রুবি অন রেইলের মতো জনপ্রিয় সার্ভার-সাইড ফ্রেমওয়ার্কগুলি এই সিনট্যাক্স (অথবা এর খুব কাছাকাছি কিছু) ব্যবহার করে, এবং জাভাস্ক্রিপ্ট ডেভেলপাররা তাদের নিজস্ব কোডে সেই লজিক যোগ করতে path-to-regexp বা regexpparam মতো মডিউল ব্যবহার করতে পারে।
URLPattern হল ওয়েব প্ল্যাটফর্মের একটি সংযোজন যা এই ফ্রেমওয়ার্কগুলির দ্বারা তৈরি ভিত্তির উপর ভিত্তি করে তৈরি হয়। এর লক্ষ্য হল একটি রাউটিং প্যাটার্ন সিনট্যাক্সকে মানসম্মত করা, যার মধ্যে ওয়াইল্ডকার্ড, নামযুক্ত টোকেন গ্রুপ, রেগুলার এক্সপ্রেশন গ্রুপ এবং গ্রুপ মডিফায়ারের জন্য সমর্থন অন্তর্ভুক্ত। এই সিনট্যাক্স দিয়ে তৈরি URLPattern ইনস্ট্যান্সগুলি সাধারণ রাউটিং কাজগুলি সম্পাদন করতে পারে, যেমন সম্পূর্ণ URL বা URL pathname সাথে মিল করা এবং টোকেন এবং গ্রুপ মিল সম্পর্কে তথ্য প্রদান করা।
ওয়েব প্ল্যাটফর্মে সরাসরি URL ম্যাচিং প্রদানের আরেকটি সুবিধা হল যে একটি সাধারণ সিনট্যাক্স অন্যান্য API গুলির সাথে শেয়ার করা যেতে পারে যেগুলিকে URL গুলির সাথেও মেলাতে হবে।
ব্রাউজার সাপোর্ট এবং পলিফিল
URLPattern Chrome এবং Edge সংস্করণ 95 এবং তার পরবর্তী সংস্করণে ডিফল্টরূপে সক্রিয় থাকে।
urlpattern-polyfill লাইব্রেরি ব্রাউজার বা নোডের মতো পরিবেশে URLPattern ইন্টারফেস ব্যবহার করার একটি উপায় প্রদান করে যেখানে অন্তর্নির্মিত সমর্থন নেই। যদি আপনি পলিফিল ব্যবহার করেন, তাহলে নিশ্চিত করুন যে আপনি বৈশিষ্ট্য সনাক্তকরণ ব্যবহার করছেন যাতে আপনি কেবল তখনই এটি লোড করছেন যখন বর্তমান পরিবেশে সমর্থনের অভাব রয়েছে। অন্যথায়, আপনি URLPattern এর একটি গুরুত্বপূর্ণ সুবিধা হারাবেন: সমর্থন পরিবেশগুলিকে এটি ব্যবহার করার জন্য অতিরিক্ত কোড ডাউনলোড এবং পার্স করার প্রয়োজন হয় না।
if (!(globalThis && 'URLPattern' in globalThis)) {
// URLPattern is not available, so the polyfill is needed.
}
সিনট্যাক্স সামঞ্জস্য
URLPattern এর একটি পথনির্দেশক দর্শন হল পুনর্নবীকরণ এড়ানো। যদি আপনি ইতিমধ্যেই Express বা Ruby on Rails-এ ব্যবহৃত রাউটিং সিনট্যাক্সের সাথে পরিচিত হন, তাহলে আপনাকে নতুন কিছু শেখার দরকার নেই। কিন্তু জনপ্রিয় রাউটিং লাইব্রেরিতে সিনট্যাক্সের মধ্যে সামান্য পার্থক্যের কারণে, বেস সিনট্যাক্স হিসাবে কিছু বেছে নিতে হয়েছিল এবং URLPattern এর ডিজাইনাররা path-to-regexp (যদিও এর API পৃষ্ঠ নয়) থেকে প্যাটার্ন সিনট্যাক্সকে শুরু বিন্দু হিসাবে ব্যবহার করার সিদ্ধান্ত নিয়েছিলেন।
path-to-regexp এর বর্তমান রক্ষণাবেক্ষণকারীর সাথে ঘনিষ্ঠ পরামর্শের পরে এই সিদ্ধান্ত নেওয়া হয়েছে।
সমর্থিত সিনট্যাক্সের মূল বিষয়গুলির সাথে নিজেকে পরিচিত করার সর্বোত্তম উপায় হল path-to-regexp এর ডকুমেন্টেশনটি পড়ুন। আপনি GitHub-এর বর্তমান হোমপেজে MDN- তে প্রকাশনার জন্য তৈরি ডকুমেন্টেশনটি পড়তে পারেন।
অতিরিক্ত বৈশিষ্ট্য
URLPattern এর সিনট্যাক্স হল path-to-regexp কি সমর্থন করে তার একটি সুপারসেট, কারণ URLPattern রাউটিং লাইব্রেরিগুলির মধ্যে একটি অস্বাভাবিক বৈশিষ্ট্য সমর্থন করে: হোস্টনামে ওয়াইল্ডকার্ড সহ origins এর সাথে মিল। বেশিরভাগ অন্যান্য রাউটিং লাইব্রেরি কেবল pathname এবং মাঝে মাঝে URL এর অনুসন্ধান বা হ্যাশ অংশ নিয়ে কাজ করে। তাদের কখনই URL এর মূল অংশ পরীক্ষা করতে হয় না, কারণ এগুলি শুধুমাত্র একটি স্বয়ংসম্পূর্ণ ওয়েব অ্যাপের মধ্যে একই-অরিজিন রাউটিংয়ের জন্য ব্যবহৃত হয়।
origins কে বিবেচনায় নিলে অতিরিক্ত ব্যবহারের জন্য দরজা খুলে যায়, যেমন service worker এর fetch ইভেন্ট হ্যান্ডলারের ভিতরে cross-origin অনুরোধ রাউটিং করা। যদি আপনি শুধুমাত্র same-origin URL রাউটিং করেন, তাহলে আপনি কার্যকরভাবে এই অতিরিক্ত বৈশিষ্ট্যটি উপেক্ষা করতে পারেন এবং অন্যান্য লাইব্রেরির মতো URLPattern ব্যবহার করতে পারেন।
উদাহরণ
প্যাটার্ন তৈরি করা
একটি URLPattern তৈরি করতে, এর কনস্ট্রাক্টরকে স্ট্রিং অথবা এমন একটি অবজেক্ট পাস করুন যার প্রোপার্টিতে ম্যাচ করার জন্য প্যাটার্ন সম্পর্কে তথ্য থাকে।
কোনও অবজেক্ট পাস করলে প্রতিটি URL কম্পোনেন্টের সাথে মেলানোর জন্য কোন প্যাটার্ন ব্যবহার করতে হবে তার উপর সর্বাধিক স্পষ্ট নিয়ন্ত্রণ পাওয়া যায়। সবচেয়ে স্পষ্ট ভাষায়, এটি দেখতে এরকম হতে পারে।
const p = new URLPattern({
protocol: 'https',
username: '',
password: '',
hostname: 'example.com',
port: '',
pathname: '/foo/:image.jpg',
search: '*',
hash: '*',
});
কোনও প্রপার্টির জন্য খালি স্ট্রিং প্রদান করলে শুধুমাত্র তখনই মিলবে যদি URL-এর সংশ্লিষ্ট অংশটি সেট না থাকে। ওয়াইল্ডকার্ড * URL-এর একটি নির্দিষ্ট অংশের যেকোনো মানের সাথে মিলবে।
সহজ ব্যবহারের জন্য কনস্ট্রাক্টরটি বেশ কয়েকটি শর্টকাট অফার করে। search এবং hash , অথবা অন্য কোনও বৈশিষ্ট্য সম্পূর্ণরূপে বাদ দেওয়া, এগুলিকে '*' ওয়াইল্ডকার্ডে সেট করার সমতুল্য। উদাহরণটি সরলীকৃত করা যেতে পারে:
const p = new URLPattern({
protocol: 'https',
username: '',
password: '',
hostname: 'example.com',
port: '',
pathname: '/foo/:image.jpg',
});
একটি অতিরিক্ত শর্টকাট হিসেবে, উৎপত্তি সম্পর্কে সমস্ত তথ্য একটি একক বৈশিষ্ট্য, baseURL -এ প্রদান করা যেতে পারে, যার ফলে
const p = new URLPattern({
pathname: '/foo/:image.jpg',
baseURL: 'https://example.com',
});
এই সমস্ত উদাহরণ ধরে নিয়েছে যে আপনার ব্যবহারের ক্ষেত্রে অরিজিন মেলানো জড়িত। যদি আপনি শুধুমাত্র অরিজিন বাদ দিয়ে URL-এর অন্যান্য অংশে মেলাতে আগ্রহী হন (যেমন অনেক সিঙ্গেল-অরিজিন রাউটিং পরিস্থিতির ক্ষেত্রে হয়), তাহলে আপনি অরিজিন তথ্য সম্পূর্ণভাবে বাদ দিতে পারেন এবং কেবল pathname , search এবং hash বৈশিষ্ট্যের কিছু সমন্বয় প্রদান করতে পারেন। আগের মতোই, বাদ দেওয়া বৈশিষ্ট্যগুলিকে * ওয়াইল্ডকার্ড প্যাটার্নে সেট করা হিসাবে বিবেচনা করা হবে।
const p = new URLPattern({pathname: '/foo/:image.jpg'});
কনস্ট্রাক্টরে কোনও অবজেক্ট পাস করার বিকল্প হিসেবে, আপনি একটি বা দুটি স্ট্রিং প্রদান করতে পারেন। যদি একটি স্ট্রিং প্রদান করা হয়, তাহলে এটি একটি সম্পূর্ণ URL প্যাটার্ন উপস্থাপন করবে, যার মধ্যে মূলের সাথে মেলে এমন প্যাটার্ন তথ্য থাকবে। যদি আপনি দুটি স্ট্রিং প্রদান করেন, তাহলে দ্বিতীয় স্ট্রিংটি baseURL হিসাবে ব্যবহৃত হবে এবং প্রথম স্ট্রিংটি সেই বেসের সাথে সম্পর্কিত বলে বিবেচিত হবে।
একটি স্ট্রিং বা দুটি স্ট্রিং দেওয়া হোক না কেন, URLPattern কনস্ট্রাক্টর সম্পূর্ণ URL প্যাটার্নটিকে পার্স করবে, এটিকে URL উপাদানগুলিতে বিভক্ত করবে এবং বৃহত্তর প্যাটার্নের প্রতিটি অংশকে সংশ্লিষ্ট উপাদানের সাথে ম্যাপ করবে। এর অর্থ হল, হুডের নীচে, স্ট্রিং দিয়ে তৈরি প্রতিটি URLPattern একটি বস্তু দিয়ে তৈরি সমতুল্য URLPattern এর মতোই উপস্থাপিত হবে। যারা কম ভার্বোজ ইন্টারফেস পছন্দ করেন তাদের জন্য স্ট্রিং কনস্ট্রাক্টর কেবল একটি শর্টকাট।
const p = new URLPattern('https://example.com/foo/:image.jpg?*#*');
URLPattern তৈরি করার জন্য স্ট্রিং ব্যবহার করার সময়, কিছু সতর্কতা মনে রাখা উচিত।
URLPattern তৈরি করার জন্য কোনও অবজেক্ট ব্যবহার করার সময় কোনও প্রপার্টি বাদ দেওয়া সেই প্রপার্টির জন্য * ওয়াইল্ডকার্ড প্রদানের সমতুল্য। যখন সম্পূর্ণ URL স্ট্রিং প্যাটার্ন পার্স করা হয়, যদি URL উপাদানগুলির মধ্যে একটিতে একটি মান অনুপস্থিত থাকে, তাহলে এটিকে কম্পোনেন্টের প্রপার্টি '' তে সেট করা হয়েছে বলে বিবেচনা করা হয়, যা কেবল তখনই মিলবে যখন সেই উপাদানটি খালি থাকবে।
স্ট্রিং ব্যবহার করার সময়, যদি আপনি চান যে আপনি নির্মিত URLPattern এ ওয়াইল্ডকার্ড ব্যবহার করতে চান তবে আপনাকে স্পষ্টভাবে ওয়াইল্ডকার্ডগুলি অন্তর্ভুক্ত করতে হবে।
// p1 and p2 are equivalent.
const p1 = new URLPattern('/foo', location.origin);
const p2 = new URLPattern({
protocol: location.protocol,
hostname: location.hostname,
pathname: '/foo',
search: '',
hash: '',
});
// p3 and p4 are equivalent.
const p3 = new URLPattern('/foo?*#*', location.origin);
const p4 = new URLPattern({
protocol: location.protocol,
hostname: location.hostname,
pathname: '/foo',
});
আপনার এটাও মনে রাখা উচিত যে স্ট্রিং প্যাটার্নকে তার উপাদানগুলিতে পার্স করা সম্ভাব্যভাবে অস্পষ্ট। কিছু অক্ষর আছে, যেমন : , যা URL গুলিতে পাওয়া যায় কিন্তু প্যাটার্ন ম্যাচিং সিনট্যাক্সে তাদের বিশেষ অর্থও রয়েছে। এই অস্পষ্টতা এড়াতে, URLPattern কনস্ট্রাক্টর ধরে নেয় যে এই বিশেষ অক্ষরগুলির যেকোনো একটি একটি প্যাটার্নের অংশ, URL এর অংশ নয়। আপনি যদি একটি অস্পষ্ট অক্ষরকে URL এর অংশ হিসাবে ব্যাখ্যা করতে চান, তাহলে এটিকে একটি \` character. For example, the literal URL about:blank কে 'about\:blank'` should be escaped as ।
প্যাটার্নটি ব্যবহার করুন
URLPattern তৈরি করার পর, এটি ব্যবহারের জন্য আপনার কাছে দুটি বিকল্প রয়েছে। test() এবং exec() পদ্ধতি উভয়ই একই ইনপুট নেয় এবং মিল পরীক্ষা করার জন্য একই অ্যালগরিদম ব্যবহার করে, এবং শুধুমাত্র তাদের রিটার্ন মানের মধ্যে পার্থক্য থাকে। প্রদত্ত ইনপুটের জন্য মিল থাকলে test() true ফেরত দেয়, এবং অন্যথায় false ফেরত দেয়। exec() ক্যাপচার গ্রুপ সহ ম্যাচ সম্পর্কে বিস্তারিত তথ্য ফেরত দেয়, অথবা যদি কোনও মিল না থাকে তবে null ফেরত দেয়। নিম্নলিখিত উদাহরণগুলি exec() ব্যবহার করে দেখানো হয়েছে, তবে আপনি যদি শুধুমাত্র একটি বুলিয়ান রিটার্ন মান চান তবে আপনি test() এর যেকোনো একটিতে সোয়াপ করতে পারেন।
test() এবং exec() পদ্ধতি ব্যবহার করার একটি উপায় হল স্ট্রিং পাস করা। কনস্ট্রাক্টর যা সমর্থন করে তার অনুরূপ, যদি একটি একক স্ট্রিং প্রদান করা হয়, তবে এটি একটি সম্পূর্ণ URL হওয়া উচিত, যার মধ্যে মূলটিও অন্তর্ভুক্ত থাকবে। যদি দুটি স্ট্রিং প্রদান করা হয়, তাহলে দ্বিতীয় স্ট্রিংটিকে একটি baseURL মান হিসাবে বিবেচনা করা হয় এবং প্রথম স্ট্রিংটিকে সেই বেসের সাপেক্ষে মূল্যায়ন করা হয়।
const p = new URLPattern({
pathname: '/foo/:image.jpg',
baseURL: 'https://example.com',
});
const result = p.exec('https://example.com/foo/cat.jpg');
// result will contain info about the successful match.
// const result = p.exec('/foo/cat.jpg', 'https://example.com')
// is equivalent, using the baseURL syntax.
const noMatchResult = p.exec('https://example.com/bar');
// noMatchResult will be null.
বিকল্পভাবে, আপনি কনস্ট্রাক্টর যে ধরণের অবজেক্ট সমর্থন করে সেই ধরণের অবজেক্টটি পাস করতে পারেন, যে বৈশিষ্ট্যগুলি আপনার পছন্দের URL-এর অংশগুলিতে সেট করা থাকে।
const p = new URLPattern({pathname: '/foo/:image.jpg'});
const result = p.exec({pathname: '/foo/:image.jpg'});
// result will contain info about the successful match.
ওয়াইল্ডকার্ড বা টোকেন ধারণকারী URLPattern এ exec() ব্যবহার করার সময়, রিটার্ন মান আপনাকে ইনপুট URL-এ সংশ্লিষ্ট মানগুলি সম্পর্কে তথ্য দেবে। এটি আপনাকে সেই মানগুলি নিজেই বিশ্লেষণ করার ঝামেলা থেকে বাঁচাতে পারে।
const p = new URLPattern({
hostname: ':subdomain.example.com',
pathname: '/*/:image.jpg'
});
const result = p.exec('https://imagecdn1.example.com/foo/cat.jpg');
// result.hostname.groups.subdomain will be 'imagecdn1'
// result.pathname.groups[0] will be 'foo', corresponding to *
// result.pathname.groups.image will be 'cat'
বেনামী এবং নামযুক্ত গোষ্ঠী
যখন আপনি exec() তে একটি URL স্ট্রিং পাস করেন, তখন আপনি একটি মান পাবেন যা আপনাকে জানাবে যে কোন অংশগুলি প্যাটার্নের সমস্ত গ্রুপের সাথে মিলেছে।
রিটার্ন ভ্যালুতে URLPattern এর উপাদানগুলির সাথে সামঞ্জস্যপূর্ণ বৈশিষ্ট্য রয়েছে, যেমন pathname । সুতরাং যদি কোনও গ্রুপকে URLPattern এর pathname অংশের অংশ হিসাবে সংজ্ঞায়িত করা হয়, তাহলে মিলগুলি রিটার্ন ভ্যালুর pathname.groups এ পাওয়া যাবে। মিলগুলি ভিন্নভাবে উপস্থাপন করা হয় যা সংশ্লিষ্ট প্যাটার্নটি একটি বেনামী বা নামযুক্ত গ্রুপ কিনা তার উপর নির্ভর করে।
একটি বেনামী প্যাটার্ন মিলের জন্য মানগুলি অ্যাক্সেস করতে আপনি অ্যারে ইনডেক্স ব্যবহার করতে পারেন। যদি একাধিক বেনামী প্যাটার্ন থাকে, তাহলে সূচক 0 বাম-সর্বাধিক প্যাটার্নের জন্য মিলিত মান উপস্থাপন করে, 1 এবং পরবর্তী প্যাটার্নের জন্য আরও সূচক ব্যবহার করা হয়।
একটি প্যাটার্নে নামযুক্ত গোষ্ঠী ব্যবহার করার সময়, মিলগুলি এমন বৈশিষ্ট্য হিসাবে প্রকাশিত হয় যার নাম প্রতিটি গোষ্ঠীর নামের সাথে মিলে যায়।
ইউনিকোড সমর্থন এবং স্বাভাবিকীকরণ
URLPattern কয়েকটি ভিন্ন উপায়ে ইউনিকোড অক্ষর সমর্থন করে।
নামযুক্ত গ্রুপ, যেমন
:café, তে ইউনিকোড অক্ষর থাকতে পারে। বৈধ জাভাস্ক্রিপ্ট শনাক্তকারীর জন্য ব্যবহৃত নিয়মগুলি নামযুক্ত গ্রুপের ক্ষেত্রে প্রযোজ্য।একটি প্যাটার্নের মধ্যে থাকা টেক্সট স্বয়ংক্রিয়ভাবে সেই নির্দিষ্ট কম্পোনেন্টের URL এনকোডিংয়ের জন্য ব্যবহৃত একই নিয়ম অনুসারে এনকোড করা হবে।
pathnameমধ্যে থাকা ইউনিকোড অক্ষরগুলি শতাংশ-এনকোড করা হবে, তাই/caféমতো একটিpathnameপ্যাটার্ন স্বয়ংক্রিয়ভাবে/caf%C3%A9তে স্বাভাবিক করা হবে।hostnameইউনিকোড অক্ষরগুলি স্বয়ংক্রিয়ভাবে শতাংশ-এনকোডিংয়ের পরিবর্তে Punycode ব্যবহার করে এনকোড করা হবে।রেগুলার এক্সপ্রেশন গ্রুপগুলিতে শুধুমাত্র ASCII অক্ষর থাকতে হবে। রেগুলার এক্সপ্রেশন সিনট্যাক্সের ফলে এই গ্রুপগুলিতে স্বয়ংক্রিয়ভাবে ইউনিকোড অক্ষর এনকোড করা কঠিন এবং অনিরাপদ হয়ে ওঠে। যদি আপনি একটি রেগুলার এক্সপ্রেশন গ্রুপে একটি ইউনিকোড অক্ষর মেলাতে চান, তাহলে আপনাকে
caféমেলাতে ম্যানুয়ালি শতাংশ এনকোড করতে হবে, যেমন(caf%C3%A9)।
ইউনিকোড অক্ষর এনকোড করার পাশাপাশি, URLPattern URL স্বাভাবিকীকরণও সম্পাদন করে। উদাহরণস্বরূপ, pathname কম্পোনেন্টে /foo/./bar /foo/bar সমতুল্য করে ধসে ফেলা হয়।
যখন কোনও প্রদত্ত ইনপুট প্যাটার্ন কীভাবে স্বাভাবিক করা হয়েছে সে সম্পর্কে সন্দেহ থাকে, তখন আপনার ব্রাউজারের DevTools ব্যবহার করে নির্মিত URLPattern ইনস্ট্যান্সটি পরীক্ষা করুন।
সব একসাথে রাখো।
গ্লিচ ডেমোটি একজন পরিষেবা কর্মীর fetch event handler ভিতরে URLPattern এর একটি মূল ব্যবহারের উদাহরণ তুলে ধরে, যা নির্দিষ্ট প্যাটার্নগুলিকে অ্যাসিঙ্ক্রোনাস ফাংশনগুলিতে ম্যাপ করে যা নেটওয়ার্ক অনুরোধের প্রতিক্রিয়া তৈরি করতে পারে। এই উদাহরণের ধারণাগুলি সার্ভার-সাইড বা ক্লায়েন্ট-সাইড উভয় ক্ষেত্রেই অন্যান্য রাউটিং পরিস্থিতিতে প্রয়োগ করা যেতে পারে।
প্রতিক্রিয়া এবং ভবিষ্যৎ পরিকল্পনা
যদিও URLPattern এর মৌলিক কার্যকারিতা Chrome এবং Edge-এ পৌঁছে গেছে, তবুও কিছু সংযোজনের পরিকল্পনা রয়েছে। URLPattern এর কিছু দিক এখনও তৈরি করা হচ্ছে , এবং নির্দিষ্ট আচরণ সম্পর্কে অনেকগুলি মুক্ত প্রশ্ন রয়েছে যা এখনও পরিমার্জিত হতে পারে। আমরা আপনাকে URLPattern ব্যবহার করে দেখতে এবং GitHub সমস্যার মাধ্যমে যেকোনো প্রতিক্রিয়া জানাতে উৎসাহিত করছি।
টেমপ্লেটিংয়ের জন্য সমর্থন
path-to-regexp লাইব্রেরি একটি compile() function প্রদান করে যা কার্যকরভাবে রাউটিং আচরণকে বিপরীত করে। compile() টোকেন প্লেসহোল্ডারগুলির জন্য একটি প্যাটার্ন এবং মান নেয় এবং সেই মানগুলি প্রতিস্থাপন করে একটি URL পাথের জন্য একটি স্ট্রিং প্রদান করে।
আমরা ভবিষ্যতে এটি URLPattern-এ যুক্ত করার আশা করছি, কিন্তু এটি প্রাথমিক প্রকাশের সুযোগের মধ্যে নেই।
ভবিষ্যতের ওয়েব প্ল্যাটফর্ম বৈশিষ্ট্যগুলি সক্ষম করুন
ধরে নিচ্ছি যে URLPattern ওয়েব প্ল্যাটফর্মের একটি প্রতিষ্ঠিত অংশ হয়ে উঠেছে, রাউটিং বা প্যাটার্ন ম্যাচিং থেকে উপকৃত হতে পারে এমন অন্যান্য বৈশিষ্ট্যগুলি এর উপরে একটি আদিম হিসাবে তৈরি করতে পারে।
পরিষেবা কর্মী স্কোপ প্যাটার্ন ম্যাচিং , ফাইল হ্যান্ডলার হিসেবে PWA এবং অনুমানমূলক প্রিফেচিংয়ের মতো প্রস্তাবিত বৈশিষ্ট্যগুলির জন্য URLPattern ব্যবহার সম্পর্কে আলোচনা চলছে।
স্বীকৃতির সম্পূর্ণ তালিকার জন্য মূল ব্যাখ্যাকারী নথিটি দেখুন।