এই সমাধান কি ক্যাচে বনাম কুকিজ আমাকে সমস্যায় ফেলতে চলেছে?


23

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

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

পটভূমি

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

যদি "জ্ঞাত ব্যবহারকারীদের কাছে নতুনভাবে উত্পন্ন ফাইলগুলি সরবরাহ করার জন্য সেট করা থাকে," ডাব্লুপিএসসি নির্ধারণ করে যে বেশ কয়েকটি চেকের ভিত্তিতে ক্যাশেড ফাইলটি পরিবেশন করা হবে কি না: লগ-ইন করা ব্যবহারকারীরা তাজা ফাইলগুলি পান এবং তাই "মন্তব্য করতে পারেন এমন দর্শকরা"। পরবর্তীকর্মীরা প্রধানত তাদের comment_author_কুকিজের ব্রাউজারগুলিতে উপস্থিতি দ্বারা চিহ্নিত হয়ে থাকে যা নির্দিষ্ট ব্যবহারকারীর দ্বারা নির্দিষ্টভাবে বা অনন্যভাবে সনাক্ত করা যায় না COOKIEHASH(সাধারণত তবে সর্বদা সাইটের অপশনগুলিতে রেকর্ডকৃত "সাইটরল" এর MD5- এনকোড সংস্করণ নয়) not

ডাব্লুপিপি-ক্যাশে-ফেজ ১.এফপি এলএল 71১71-৩83৩ থেকে ডাব্লুপিএসসি কোডের মূল অংশ হিসাবে উপস্থিত বলে মনে হচ্ছে, কুকিজের মধ্য দিয়ে সাইক্লিং করে স্ট্রিং পেতে একটি রেজিএক্স প্যাটার্ন ব্যবহার করা হয়েছে:

$regex = "/^wp-postpass|^comment_author_";
if ( defined( 'LOGGED_IN_COOKIE' ) )
    $regex .= "|^" . preg_quote( constant( 'LOGGED_IN_COOKIE' ) );
else
    $regex .= "|^wordpress_logged_in_";
$regex .= "/";
while ($key = key($_COOKIE)) {
    if ( preg_match( $regex, $key ) ) {
        wp_cache_debug( "wp_cache_get_cookies_values: $regex Cookie detected: $key", 5 );
        $string .= $_COOKIE[ $key ] . ",";
    }
    next($_COOKIE);
}

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

আমার টেন্টিটিভ সলিউশন

$.cookie( 'comment_author_proxyhash', 'proxy_author', { path: '/' } );

JQuery কুকি সম্পর্কে অপরিচিত যারা: উপরেরগুলি পুরো সাইটের পক্ষে কী = comment_author_proxyhashএবং মান = সহ একটি সাধারণ সেশন কুকি সেট করে proxy_author। (এছাড়াও, যারা ডব্লিউপি-র $জন্য পরিচিত জিকুয়েরিকে প্রাক-প্রতিস্থাপনের পাশাপাশি jQuery কুকি এবং ডাব্লুপি ব্যবহার করেন jQuery, আমি ইতিমধ্যে সেট করে রেখেছি $.cookie.raw = true;))

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

সম্ভবত একটি ত্রুটি হ'ল "প্রক্সিহশ" কুকি যতক্ষণ না তিনি বা সে অধিবেশনটি উন্মুক্ত রাখেন ততক্ষণ ব্যবহারকারীর সাথে ভ্রমণ করবে তবে এটি আমাকে বড় সমস্যা হিসাবে চিহ্নিত করবে না - এমনকি একটি সতর্কতাও মূল্যবান। নিয়মিত কুকিগুলির মধ্যে একটির সাথে এই জাতীয় ঘটনার বিষয়ে কেউ অভিযোগ করার কথা আমি অবশ্যই শুনিনি।

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

যদি তা না হয় তবে এই বা মহাবিশ্বের নিকটবর্তী কোনও কিছুকে প্লাগ-ইনে ঠেলে দেওয়ার কোনও ভাল কারণ নেই?


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

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

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

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

এসএসএনপেন্থে: সম্ভবত আমার ব্যাখ্যা করা উচিত: আমি যখন একটি প্রশ্ন লিখেছিলাম তখন আমি প্লাগইন বিকাশ করছিলাম - wordpress.org/plugins/commenter-ignore-button - দর্শকদের নির্বাচিত কমেন্টারদের "উপেক্ষা" করার অনুমতি দেওয়ার জন্য jQuery ব্যবহার করে। প্রাথমিক ক্রিয়াটি মন্তব্য থ্রেডে সিএসএস ফর্ম্যাটিং প্রয়োগ করে এবং তারপরে কুকির মেয়াদ শেষ হওয়া পর্যন্ত পরবর্তী রিফ্রেশগুলির উপর প্রভাবটি (পিএইচপি এর মাধ্যমে) ডুপ্লিকেট করার জন্য উপকরণ এবং এর উপস্থিতি সংরক্ষণ করার জন্য একটি কুকির উপর নির্ভর করে। পৃষ্ঠার ক্যাশেড সংস্করণে, প্রভাবটি নিবন্ধিত হবে না। সুতরাং, হ্যাঁ, এটি উদ্দেশ্যমূলক স্থানীয়করণ ক্যাশে-বুস্টিংয়ের এক রূপ।
সি কে

উত্তর:


1

কমেন্ট_অর্থর_প্রক্সিয়া কুকির সাথে আপনার সমাধান অবশ্যই প্রযুক্তিগতভাবে কাজ করবে - আমি জানি সমস্ত ক্যাচিং প্লাগইন হ্যাশ মান বিশ্লেষণ করে না এবং কেবল মন্তব্য_অথর_ * কুকি উপস্থার উপর ভিত্তি করে ক্যাশেড সামগ্রীর সরবরাহ বন্ধ করে দেবে।

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

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

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


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

আপনি ঠিক এখানে আছেন বলে মনে করেন, তবে অবশ্যই আপনার ব্যবহারকারীরা কীভাবে এটি ব্যবহার করবেন তা নিশ্চিতভাবে জানতে পারবেন না। বিটিডব্লিউ অনেকগুলি উচ্চ ট্রাফিক ওয়েবসাইটগুলি তাদের মন্তব্যের প্রক্রিয়াকরণটি একটি পৃথক অনুরোধ বা এমনকি তৃতীয় পক্ষের পরিষেবাতে ঠিক বন্ধ করার জন্য নিবন্ধের সামগ্রী দ্রুত এবং অলস লোড গতিশীল মন্তব্যের সামগ্রীগুলিকে প্রদর্শন করার উদ্দেশ্যে ঠিক করে দেয় off আপনার প্লাগইনটির আরও সংস্করণগুলির জন্য এটি
অফটোপিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.