A method, system, and computer-readable medium are provided for
controlling the calculation of volatile functions in a workbook created
in a spreadsheet application program such that the volatile function does
not need to be recalculated each time a calculation request is received
in the workbook. A volatile function may include a function which is
capable of returning a different value each time the function is
calculated. The spreadsheet application program determines a calculation
mode setting for the workbook, calculates a volatile function timeout
value based on the calculation mode setting, and calculates the volatile
function based on the volatile function timeout value. The volatile
function timeout value may include a time span for which the results of a
volatile function are valid. The volatile function timeout value is
calculated by determining the maximum of a workbook timeout value
assigned to the workbook on a client computer and a server timeout value
assigned to the workbook on a server computer running the spreadsheet
application program. During the volatile function timeout period, the
volatile functions are not recalculated.