How to enable caching for ajax callbacks, especially for colorbox node?
This can be done. Will require 2 hooks hook_menu_alter() &amp; hook_boot() and some non trivial code.

Top level overview of how to do this:
Use hook_menu_alter() to call a wrapper around colorbox_node_output() that will cache its output. Use hook_boot() to check the cache and deliver the cached content, routing the cached content though ajax_deliver().

An example of cache code flow can be seen in the 6.x-2.x ESI module. esi_get_page_cache() gets called from esi_boot. esi_set_page_cache() is what sets the cache; you can see it getting called at the bottom of these functions: esi__block_handler() &amp; esi__panel_pane_handler(). Side note: A big reason the ESI module's cache code has a lot of complexity is it's compatible with D6 core and Pressflow; both have different code for the page cache.