2 out of 10 rated this helpful - Rate this topic

recalc method

This element is obsolete and should no longer be used. Recalculates all dynamic properties in the current document.

Syntax

var retval = document.recalc(fForce);

Parameters

fForce [in, optional]

Type: Boolean

A Boolean that specifies one of the following values.

false (false)

Default. Recalculates only those expressions that have changed since the last recalculation.

true (true)

Recalculates all expressions in the document.

Return value

Type: HRESULT

If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.

Standards information

There are no standards that apply here.

Remarks

Implicit dependencies, internal property changes, and related properties can cause some expressions not to recalculate, even though the referenced properties might have changed. For example, resizing the main window changes the clientWidth property. Expressions that reference clientWidth might not be recalculated, because the change might not be recognized.

Implicit dependencies refer to properties that can be modified by changes in other properties. For example, the height property of a div object implicitly depends on the innerHTML property of the div object. However, if an expression references the height property, a change in the innerHTML property, which might modify the height, does not cause a recalculation of the expression on a subsequent call to recalc.

Related properties can access or manipulate data or behaviors through one or more other properties. For example, pixelLeft and posLeft can set or get the left position of the element. However, if an expression that references pixelLeft and posLeft is modified, the expression might not be recalculated on subsequent calls to recalc.

Related properties that can cause this behavior include the following: clientHeight, clientLeft, clientTop, clientWidth, height, left, offsetHeight, offsetLeft, offsetTop, offsetWidth, pixelHeight, pixelLeft, pixelTop, pixelWidth, posHeight, posLeft, posTop, posWidth, and top.

To force the recalculation of all expressions, refer to the same property name or manually call recalc(true).

Examples

The following example uses the recalc method in HTML and script to help create a timer. If the calls to recalc are commented out, the timer does not work correctly.

Code example: http://samples.msdn.microsoft.com/workshop/samples/author/dhtml/refs/recalc.htm


<HTML>
<HEAD> 
<TITLE>Recalc Example</TITLE>
<STYLE>
BUTTON {font-size:14;width:150}
</STYLE>
<SCRIPT>
 
var timerID = null;
var seconds = 0;
 
//
// This function is called when the page loads. 
// It sets up a couple of expressions.
//
 
function init()
{
  A.style.setExpression("width","seconds*10");
  B.setExpression("innerText","seconds.toString()");
}
 
//
// This function gets calls once a second and updates the seconds
// variable. Notice that without recalc, the expressions aren't
// updated until the mouse is moved.
//
 
function timer()
{
  seconds++;
  document.recalc();
}
 
//
// starts the timer
//
 
function starttimer()
{
  if (timerID == null) 
  {
    timerID = setInterval("timer()", 1000);
    startButton.disabled = true;
    stopButton.disabled = false;
  }
}
 
//
// stops the timer
//
 
function stoptimer()
{
  if (timerID != null)
  {
    clearInterval(timerID);
    timerID = null;
    startButton.disabled = false;
    stopButton.disabled = true;
  }
}
 
//
//  resets the timer
//
 
function resettimer()
{
  seconds = 0;
}
 
</SCRIPT>
</HEAD>
<BODY onload="init()">
 
<DIV id=A style="background-color:lightblue" ></DIV>
<DIV id=B style="color:hotpink;font-weight:bold"></DIV>
 
<BR>
<BUTTON id="startButton" onclick="starttimer()">Start the Timer</BUTTON></BR>
<BUTTON id="stopButton" DISABLED="true" onclick="stoptimer()">Stop the Timer</BUTTON><BR>
<BUTTON id="resetButton" onclick="resettimer()">Reset the Timer</BUTTON><BR>
 
<P style="width:320;color:peru;background-color:wheat">
This example illustrates the use of document.recalc().  If the calls
to recalc are omitted in this example, expressions will not be updated 
until the mouse is moved.
</P>
 
</BODY>
</HTML>

See also

document
Reference
getExpression
removeExpression
setExpression
Conceptual
About Dynamic Properties

 

 

Send comments about this topic to Microsoft

Build date: 11/29/2012

Did you find this helpful?
(1500 characters remaining)

Community Additions

ADD
© 2013 Microsoft. All rights reserved.