เหตุการณ์สุดท้ายที่ส่งมาก่อนที่เนื้อหาจะถูกส่งไปยังเบราว์เซอร์คืออะไร?


11

ฉันต้องตั้งค่าหรืออัปเดตคุกกี้ แต่ฉันต้องการให้แน่ใจว่าการประมวลผลคำขอ (หรือมากที่สุด) ทั้งหมดที่เกิดขึ้นก่อนที่รหัสสร้างคุกกี้ของฉันจะทำงาน เช่นถ้าผู้ใช้เข้าสู่ระบบฉันต้องการให้แน่ใจว่าการประมวลผลการเข้าสู่ระบบเกิดขึ้นก่อนที่รหัสของฉันจะทำงานหรือหากผู้ใช้เพิ่มบางอย่างในรถเข็นของพวกเขาฉันต้องการที่จะรู้ว่าการประมวลผลรถเข็นทั้งหมดเสร็จสิ้นก่อน

มีเหตุการณ์ใดบ้างที่ส่งทันทีก่อนที่คำตอบจะถูกส่งไปยังเบราว์เซอร์?

คำตอบ:


11

กิจกรรมสุดท้ายที่ส่งใน Magento 1.x ก่อนแสดงเนื้อหาคือ

controller_front_send_response_after

หากไม่มีข้อกำหนดพิเศษในข้อมูลผู้สังเกตการณ์ที่คุณต้องการสิ่งนี้ควรเหมาะสำหรับคุณ


3
ที่จริงแล้ว "controller_front_send_response_before" ดูเหมือนว่าฉันต้องการ ขอบคุณที่ชี้นำฉันในทิศทางที่ถูกต้อง!
จิม OHalloran

8

เคล็ดลับที่มีประโยชน์ในการค้นหาเหตุการณ์ที่เกิดขึ้นระหว่างการร้องขอ / การกระทำของหน้าคือการแก้ไขแอพ / Mage.php ชั่วคราวและเขียนเหตุการณ์ที่ถูกไล่ออกไปยัง var / log / system.log

 public static function dispatchEvent($name, array $data = array())
    {
        Varien_Profiler::start('DISPATCH EVENT:'.$name);
        $result = self::app()->dispatchEvent($name, $data);
        Varien_Profiler::stop('DISPATCH EVENT:'.$name);
        return $result;
    }

ถึง

public static function dispatchEvent($name, array $data = array())
    {
        if(mage::getIsDeveloperMode()) {
           mage::log($name);
        }
        Varien_Profiler::start('DISPATCH EVENT:'.$name);
        $result = self::app()->dispatchEvent($name, $data);
        Varien_Profiler::stop('DISPATCH EVENT:'.$name);
        return $result;
    }

จากนั้นจึงบันทึกแฟ้มบันทึก ฉันพบว่าวิธีนี้มีประโยชน์อย่างยิ่งและช่วยประหยัดเวลาในการค้นหาเหตุการณ์ที่เข้าใจยากมาก

โดยปกติคุณควรลบออกทันทีเนื่องจากคุณไม่ต้องการส่งไฟล์หลักที่ถูกเปลี่ยนแปลง ฉันใส่ไว้ในเช็คของนักพัฒนาในกรณี


2
คุณยังสามารถเปิดใช้งาน Profiler ซึ่งจะให้ข้อมูลที่ครอบคลุมเกี่ยวกับสิ่งที่เกิดขึ้นในการโหลดหน้าเว็บ เหตุการณ์ทั้งหมดที่ถูกเรียกก็ถูกสะท้อนเช่นกัน
Rick Kuipers
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.