nodeapi with op = load being ran multiple times
You need to use view $op

function hook_nodeapi(&amp;$node, $op, $teaser, $page){
  if($node-&gt;type=='page' &amp;&amp; $op =='view'){
    if ($teaser) {
      drupal_set_message("I am viewing page content type teaser");
      //the rest of my code goes here
    }
    if ($page) {
      drupal_set_message("I am viewing page content type full node view");
      //the rest of my code goes here
    }

  }
}



  view: The node content is being assembled before rendering. The
  module may add elements $node->content prior to rendering. This hook
  will be called after hook_view(). The format of $node->content is the
  same as used by Forms API.


And you need to check for teaser view or full node view using $a3 or $a4 respectively.

Check how many nodes you are rendering in a page. For example if you are in a view where view is displaying 10 nodes then 10 times message will appear.

Hope it answers your issue !