Drupal's bootstrap takes something like 50% of the total page processing time on a typical page. You are still paying for that overhead even though you don't need it. See http://api.drupal.org/api/drupal/includes--bootstrap.inc/function/drupal_boo... and look at something like the chatroom module's lightweight bootstrap code: http://drupalcode.org/viewvc/drupal/contributions/modules/chatroom/chatroomr... In particular: require_once './includes/bootstrap.inc'; drupal_bootstrap(DRUPAL_BOOTSTRAP_CONFIGURATION); // Choose the minimum bootstrap level necessary for your module. // Put your code here. // See performance skyrocket. // Rejoice. Regards, Greg On Sun, Feb 6, 2011 at 10:15 AM, John Mitchell <mitchelljj98@gmail.com> wrote:
Any reason why having a javascript timer fire every 2.5 second for an ajax request to my own callback(listed below) that all it does is return the contents of 2 _session variables would take up so much resources?
John
function refreshcarttimer() { print($_SESSION['num_items'] . ',' . $_SESSION['uc_price']); return; }
/** * Implementation of hook_menu(). */
function product_type_menu() { $items = array();
$items['cart/refreshcarttimer'] = array( 'title' => 'Refresh Shopping Cart', 'description' => 'Refresh Shopping Cart', 'page callback' => 'refreshcarttimer', 'access callback' => TRUE, 'type' => MENU_CALLBACK, ); return $items; }
On Sun, Feb 6, 2011 at 2:10 AM, John Mitchell <mitchelljj98@gmail.com> wrote:
I have a javascript timer set to fire every 2.5 seconds so that I can set the current values for the items and total for the shopping cart summary. I would like to be able to get these values from client side cookies or javascript global variables so that I don't have to make an ajax call to the server but I have found that the DOM elements are not accessible within the javascript function unless I run an ajax request to a page (listed below) and after it returns then the DOM elements are accessible (i.e. $(".num-items").html(numItems);) and now I can update them. Having these ajax requests run every 2.5 seconds for every client will not scale.
How can I make Drupal DOM elements accessible within a javascript function without having to do an ajax request to a page?
Thanks,
John
setInterval('updateShoppingCartInfo()', 2500);
function updateShoppingCartInfo(){ var xmlHttpReq = new XMLHttpRequest(); var url = 'https://' + document.domain + '/cart/refreshcarttimer'; xmlHttpReq.open('post', url, true); xmlHttpReq.onreadystatechange = function() { if (xmlHttpReq.readyState != 4) { return; } else { var responseText = xmlHttpReq.responseText; var numItems = responseText.substr(0,responseText.indexOf(",")); var ucPrice = responseText.substr(responseText.indexOf(",")+1); $(".num-items").html(numItems); $(".uc-price").html(ucPrice); } } xmlHttpReq.send(null); }
-- John J. Mitchell
-- John J. Mitchell
-- Greg Knaddison | 720-310-5623 | http://growingventuresolutions.com http://masteringdrupal.com - Videos and Tutorials