এজ্যাক্স 10 / x যতক্ষণ তা নিতে পারে / যতক্ষণ নিতে পারে তা নেয়


50

আমি কেবল ওয়ার্ডপ্রেস দিয়ে আমার প্রথম গুরুতর সমস্যাটিকে আঘাত করেছি এবং এমন কাউকে যারা আজাক্স উপভোগ করছে এটি বড় বিষয়।

আমার কাছে একটি অ্যাজাক্স অনুরোধ রয়েছে যা এজাক্স এপিআই ব্যবহার করার সময় 1.5 সেকেন্ড সময় নেয়।

যদি আমি একই সঠিক কোডটি গ্রহণ করি এবং এটি একটি কাস্টম স্ক্রিপ্ট (কোনও ওয়ার্ডপ্রেস নয়) দিয়ে চালিত করি তবে আজাক্স অনুরোধটি কেবল 150 মিলিসেকেন্ডে লাগে। এটি একটি অত্যুক্তি নয়

আপনি যদি http://wp.smashingmagazine.com/2011/10/18/how-to-use-ajax-in-wordpress/- এর প্রথম মন্তব্যটি এবং এরপরে কথোপকথনটি দেখে থাকেন তবে দেখবেন যে এই মন্দিটি হয়েছে আপনার অনুরোধে, ডাব্লুপি সমস্ত লোড করা হয়েছে যে সত্য দ্বারা ...

আমি আশা করছি যে এখানে একটি সমাধান রয়েছে যা সমস্ত ওয়ার্ডপ্রেস লোড না করে অ্যাজাক্স অনুরোধ করা সম্ভব করবে।

ওয়ার্ডপ্রেসের সাথে অ্যাজাক্স অনুরোধগুলি দ্রুত করার বিষয়ে আপনার অভিজ্ঞতাগুলি কী?


3
আমি আশ্চর্য হয়েছি যে জনপ্রিয় ক্যাসিং প্লাগইনগুলি এই পরিস্থিতিটি coverেকে রাখে।
রাফেল

@ রাফেল, আমি সে সম্পর্কেও ভেবেছিলাম, তবে এর কোনও উল্লেখ পাইনি। তারা যদি এটি করে তবে তা দুর্দান্ত
মাইকে

উত্তর:


57

হ্যাঁ, এটি একটি বাজে বিষয় যে পুরো ওয়ার্ডপ্রেস পরিবেশের জন্য আপনার এটি লোড করার জন্য যথেষ্ট সময় ব্যয় করা উচিত।

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

  1. এজাক্স হ্যান্ডলার হিসাবে কাস্টম ফাইল।
  2. SHORTINIT ধ্রুবক সীমিত ডাব্লু কোর লোড জন্য।
  3. খুব নির্বাচিতভাবে মূল অংশ লোড করা, কেবলমাত্র সেই কাজের জন্য প্রয়োজনীয়।

এটি খুব সীমিত পরিবেশ সরবরাহ করে তবে কার্যকারিতা হ'ল ডাব্লু পিপি (শুরু করে $wpdb) এর সাথে সামঞ্জস্যতার উপযুক্ত এবং যুক্তিসঙ্গত ডিগ্রি বজায় রাখা হয়।

এখানে আমার লোডার ফাইলটি শুরু করুন, সুন্দর নয় তবে নির্দিষ্ট প্রয়োজনের জন্য কাজ করে:

<?php

ini_set('html_errors', 0);
define('SHORTINIT', true);

require '../../../../wp-load.php';
require( ABSPATH . WPINC . '/formatting.php' );
require( ABSPATH . WPINC . '/meta.php' );
require( ABSPATH . WPINC . '/post.php' );
wp_plugin_directory_constants();

// stuff goes here

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

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

1
এটা ঠিক আছে। আমি কেবল এই সত্যটি পছন্দ করি না যে আমাদের '../../..////wp-load.php' প্রয়োজন; এটি এই সুন্দর রীতিনীতি তৈরি করে। আমি এও উদ্বেগ করছি যে আপনার "প্রয়োজনীয়" সংস্থানগুলি আসলে টানানো কতটা সহজ, আমার অভিজ্ঞতা থেকে ওয়ার্ডপ্রেস খুব বেশি মডুলার নয়।
মাইকে

@ মাইকটি সঠিক, তবে ইস্যু নিয়েও এন্ডপয়েন্টের চেয়ে এটি অনেক ভাল যা ডাব্লুপি সম্পর্কে কোনও ধারণা নেই। এটির (এবং হওয়া উচিত) আরও কিছু উন্নতি করা যেতে পারে তবে এই মুহূর্তে আমার পক্ষে এটি জরুরি কাজ নয়।
রর্স্ট

ওয়ার্ডপ্রেস থেকে wp-load.php এর অবস্থান সনাক্ত করার কোন পদ্ধতি আছে? উদাহরণস্বরূপ, আমি প্লাগইন লোডে তার মধ্যে একটি চলক হিসাবে পাথ সেট সহ একটি স্ট্যাটিক ফাইল লিখতে পারি, তারপরে সেই ফাইলটিকে একা স্ট্যান্ডে অন্তর্ভুক্ত করতে পারি অ্যাজাক্স প্রতিক্রিয়া ফাইলটি?
hereswhatidid

0

আমি এটি খুঁজে পেয়েছি এবং এটি আমার আজাক্সকে বাড়িয়ে দিয়েছে।

function my_deregister_heartbeat() {
    global $pagenow;

    if ( 'post.php' != $pagenow && 'post-new.php' != $pagenow ) {
         wp_deregister_script('heartbeat');
         wp_register_script('heartbeat', false);
     }
}
add_action( 'admin_enqueue_scripts', 'my_deregister_heartbeat' );
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.