PHPStorm IDE এ অক্ষম jQuery ব্যবহারের সতর্কতা


100

আমি সম্প্রতি আমার পিএইচপিএসটর্ম আইডিইটির সংস্করণটি আপগ্রেড করেছি এবং এটি এখন অকার্যকর jQuery ব্যবহার সম্পর্কে আমাকে সতর্ক করে।

উদাহরণ স্বরূপ:

var property_single_location = $("#property [data-role='content'] .container");

এই সতর্কতাটি প্রম্পট করে:

JQuery নির্বাচনকারীদের একটি কার্যকর উপায়ে ব্যবহার করা হয় তা পরীক্ষা করে। এটি বংশোদ্ভূত নির্বাচকদের বিভক্ত করার পরামর্শ দেয় যা আইডি নির্বাচকের আগে রয়েছে এবং নকল নির্বাচনকারীদের সম্পর্কে সতর্ক করে যা ক্যাশে যেতে পারে।

সুতরাং আমার প্রশ্নটি হ'ল:

এই অদক্ষ কেন এবং উপরের নির্বাচককে করার কার্যকর উপায় কী?

আমি এখানে অনুমান করতে পারি:

var property_single_location = $("#property").find("[data-role='content']").find(".container");

এটা কি সঠিক পথ?

উত্তর:


156

আমার আজ একই প্রশ্ন ছিল এবং এখানে স্কট কোসম্যানকে ধন্যবাদ জানাতে একটি সমাধান খুঁজতে সক্ষম হয়েছি ।

মূলত উত্তরটি হ'ল পৃথকভাবে আইডি নির্বাচন করা এবং তারপরে .find(...)নীচের যে কোনও কিছুর জন্য ব্যবহার করুন । সুতরাং আপনার উদাহরণ গ্রহণ:

$("#property [data-role='content'] .container");

এটিতে এটি পরিবর্তন করা পিএইচপিস্টোরমকে খুশি করে এবং স্পষ্টত দ্বিগুণেরও বেশি দ্রুত হতে পারে :

$("#property").find("[data-role='content'] .container");

1
আমার স্বাদের জন্য $ ('[ডেটা-ভূমিকা = "সামগ্রী"] c আরও পাঠযোগ্য।
n3rd

26
@ এন 3 ম মজার, আমি এই পদ্ধতির পাঠযোগ্য কিছুই পাই না, তবে প্রতিটি তার নিজেরাই বলে।
মাইকস্কিঙ্কেল

19

আমি বিশ্বাস করি jQuery এবং ব্রাউজারগুলির সাম্প্রতিক সংস্করণগুলি ব্যবহার করার সময় দুটি পদ্ধতির মধ্যে পার্থক্য নগণ্য। আমি একটি পরীক্ষা তৈরি করেছি যা দেখায় যে এখন আইডিতে বাছাইয়ের পরিবর্তে সম্মিলিত নির্বাচক করা এখন 10% দ্রুত এবং তারপরে খুব সাধারণ একটি মামলার সন্ধান করুন:

http://jsperf.com/jquery-find-vs-insel

যে কোনও গভীরতায় শ্রেণি দ্বারা একাধিক শিশুদের নির্বাচনের জন্য, "অনুসন্ধান "টি দ্রুত বলে মনে হয়:

http://jsperf.com/jquery-find-vs-insel/7

JQuery ফোরামে এ সম্পর্কে কিছু আলোচনা ছিল, তবে এটির 3 বছর বয়সী: https://forum.jquery.com/topic/ which-jquery-selection-is-efficient তারা এখানে উল্লেখ করেছেন, আপনি যদি অনেক কিছু করছেন একই আইডি নির্বাচকগুলির ক্রিয়াকলাপ, শীর্ষ স্তরের উপাদানটি ক্যাশে করে সর্বাধিক পারফরম্যান্স উন্নতি পাওয়া যায়। অন্যদিকে আপনি যদি মাত্র কয়েকটি নির্বাচন করছেন, তবে কার্যত কোনও পার্থক্য নেই।

এজন্য আমি বিশ্বাস করি যে ইন্টেলিজ এই কোড শৈলীর গুরুত্বকে বাড়িয়ে দিচ্ছে।


4
আপনার প্রথম পরীক্ষায়, আপনি সরাসরি ডিগ্রেন্ট নির্বাচন ">" ব্যবহার করছেন। আমি ">" ছাড়াই আপনার প্রথম পরীক্ষাটি চালিয়েছি এবং "সন্ধান" ব্যবহার করা আরও দ্রুত। jsperf.com/jquery-find-vs-insel/12
দাড়িওয়ালাডুঙ্গজেক

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

14

প্রথম প্রশ্নটি হ'ল আল্ট + এন্টার চাপুন এবং তালিকার প্রথম টিপটি নির্বাচন করুন, তারপরে এন্টার টিপুন, আপনি দেখতে পাবেন এটি সবচেয়ে কার্যকর উপায় কী বলে।

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