[development] 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 Mitchell mitchelljj98 at gmail.com
Sun Feb 6 17:15:53 UTC 2011


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 at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/development/attachments/20110206/b854585e/attachment.html 


More information about the development mailing list