Sự kiện cuối cùng được gửi đi trước khi nội dung được gửi tới trình duyệt là gì?


11

Tôi cần đặt hoặc cập nhật cookie, nhưng tôi muốn đảm bảo rằng tất cả (hoặc càng nhiều càng tốt) quá trình xử lý yêu cầu xảy ra trước khi mã tạo cookie của tôi chạy. tức là nếu người dùng đăng nhập, tôi muốn đảm bảo rằng quá trình xử lý đăng nhập đã xảy ra trước khi mã của tôi chạy hoặc nếu người dùng thêm một cái gì đó vào giỏ hàng của họ, tôi muốn biết rằng tất cả quá trình xử lý giỏ hàng được thực hiện trước tiên.

Có sự kiện nào được gửi ngay lập tức trước khi phản hồi được gửi tới trình duyệt không?

Câu trả lời:


11

Sự kiện cuối cùng được gửi trong Magento 1.x trước khi nội dung được hiển thị là

controller_front_send_response_after

Nếu không có yêu cầu thêm trong dữ liệu quan sát viên mà bạn sẽ cần, thì điều này sẽ hoàn hảo cho bạn.


3
Trên thực tế, "control_front_send_response_b Before" trông giống như những gì tôi cần. Cám ơn đã chỉ tôi hướng đi đúng!
Jim OHalloran

8

Một mẹo hữu ích, để tìm các sự kiện được kích hoạt trong một yêu cầu / hành động của trang, là tạm thời chỉnh sửa app / Mage.php và viết ra các sự kiện được bắn vào 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;
    }

đến

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;
    }

và sau đó đuôi tệp nhật ký. Tôi đã tìm thấy phương pháp này cực kỳ hữu ích, và tiết kiệm rất nhiều thời gian săn lùng cho sự kiện khó nắm bắt đó để sử dụng.

Đương nhiên, bạn nên xóa nó ngay lập tức, vì bạn không muốn cam kết các tệp lõi đã thay đổi. Tôi gói nó vào kiểm tra nhà phát triển, chỉ trong trường hợp.


2
Bạn cũng có thể kích hoạt Profiler, nó cung cấp cho bạn thông tin mở rộng về những gì xảy ra trong tải trang. Tất cả các sự kiện được kích hoạt cũng được lặp lại ở đó.
Rick Kuipers
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.