Speed
SeedCodeCalendar12.Speed History
Hide minor edits - Show changes to output
Changed line 21 from:
'''•''' If you're frequently selecting multiple resource filters (or any other filter formatted as a checkbox) you'll see that we refresh the calendar after each selection. You can change this by editing the filter field in layout mode and moving the script trigger from OnObjectModify to OnObjectExit. You'll now need to press "enter" (or click out of the field) after selecting your filter items so you may want to add a small note to that effect below the filter fields in question.
to:
'''•''' If you're frequently selecting multiple resource filters (or any other filter formatted as a checkbox) you'll see that we refresh the calendar after each selection. You can change this by editing the filter field in layout mode and moving the script trigger from OnObjectModify to OnObjectExit. You'll now need to press "enter" (or click out of the field) after selecting your filter items so you may want to add a small note to that effect below the filter fields in question. (note that OnObjectExit is now the default as of [[version history | version]] 7.25)
Changed line 21 from:
'''•''' If you're frequently selecting multiple resource filters (or any other filter formatted as a checkbox) you'll see that we refresh the calendar after each selection. You can change this by editing the filter field in layout mode and moving the script trigger from OnObjectModify to OnObjectSave. You'll now need to press "enter" after selecting your filter items so you may want to add a small note to that effect below the filter fields in question.
to:
'''•''' If you're frequently selecting multiple resource filters (or any other filter formatted as a checkbox) you'll see that we refresh the calendar after each selection. You can change this by editing the filter field in layout mode and moving the script trigger from OnObjectModify to OnObjectExit. You'll now need to press "enter" (or click out of the field) after selecting your filter items so you may want to add a small note to that effect below the filter fields in question.
Changed lines 9-11 from:
To time your own scripts check out the Timer comments in the script "Insert Events File Into Calendar" to see how we place these calls within a script we want to time.
to:
Times displayed here aren't much use on their own, but are great when comparing two versions of a script: 1) click refresh, 2) notice the times, 3) change your script, 4) refresh again and notice the times.
''To time your own scripts check out the Timer comments in the script "Insert Events File Into Calendar" to see how we place these calls within a script we want to time.''
''To time your own scripts check out the Timer comments in the script "Insert Events File Into Calendar" to see how we place these calls within a script we want to time.''
Added lines 1-12:
!! Timing the calendar
Note that the calendar has some instrumentation built in to help you measure speed and see if you're making things faster (or slower).
Run the script "Timer ON" and this will cause two dialogs to come up when the calendar is refreshed. One after the data is loaded, and another after the calendar is redrawn.
Times displayed here aren't much use on their own, but are great when comparing two versions of a script: 1) click refresh, 2) notice the times, 3) change your script, 4) refresh again and notice the times.
''Times displayed here aren't much use on their own, but are great when comparing two versions of a script: 1) click refresh, 2) notice the times, 3) change your script, 4) refresh again and notice the times.''
To time your own scripts check out the Timer comments in the script "Insert Events File Into Calendar" to see how we place these calls within a script we want to time.
Note that the calendar has some instrumentation built in to help you measure speed and see if you're making things faster (or slower).
Run the script "Timer ON" and this will cause two dialogs to come up when the calendar is refreshed. One after the data is loaded, and another after the calendar is redrawn.
Times displayed here aren't much use on their own, but are great when comparing two versions of a script: 1) click refresh, 2) notice the times, 3) change your script, 4) refresh again and notice the times.
''Times displayed here aren't much use on their own, but are great when comparing two versions of a script: 1) click refresh, 2) notice the times, 3) change your script, 4) refresh again and notice the times.''
To time your own scripts check out the Timer comments in the script "Insert Events File Into Calendar" to see how we place these calls within a script we want to time.
Deleted line 13:
Changed lines 14-15 from:
'''•''' Speed up the launch by Editing the "Upon Opening" script and disabling the perform of the subscript "Splash". If you're not going to be moving the solution around to different machines / usesr, you can disable a few routines in the Upon Opening routine to speed things up a little. Disable the steps in Upon Opening that follow these comments:
to:
'''•''' Speed up the launch by Editing the "Upon Opening" script and disabling the perform of the subscript "Splash". If you're not going to be moving the solution around to different machines / users, you can disable a few routines in the Upon Opening routine to speed things up a little. Disable the steps in Upon Opening that follow these comments:
Changed lines 8-11 from:
'''•''' Mapping the event summary to a [[MultiLineEvents | multi-line calc]] can slow things down a bit, especially if the calc is unstored. Try using a regular text field (without carriage returns) for your summary instead.
'''•''' If you'r frequently selecting multiple resource filters (or any other filter formatted as a checkbox) you'll see that we refresh the calendar after each selection. You can change this by editing the filter field in layout mode and moving the script trigger from OnObjectModify to OnObjectSave. You'll now need to press "enter" after selecting your filter items so you may want to add a small note to that effect below the filter fields in question.
'''•''' If you'r
to:
'''•''' Mapping the event summary to a [[MultiLineEvents | multi-line calc]] can slow things down a bit, especially if the calc is unstored. Try using a regular text field (without carriage returns) for your summary instead. And the shorter the contents of this field, the better.
'''•''' If you're frequently selecting multiple resource filters (or any other filter formatted as a checkbox) you'll see that we refresh the calendar after each selection. You can change this by editing the filter field in layout mode and moving the script trigger from OnObjectModify to OnObjectSave. You'll now need to press "enter" after selecting your filter items so you may want to add a small note to that effect below the filter fields in question.
'''•''' If you're frequently selecting multiple resource filters (or any other filter formatted as a checkbox) you'll see that we refresh the calendar after each selection. You can change this by editing the filter field in layout mode and moving the script trigger from OnObjectModify to OnObjectSave. You'll now need to press "enter" after selecting your filter items so you may want to add a small note to that effect below the filter fields in question.
Changed lines 14-15 from:
'''•''' Speed up the launch by Editing the "Upon Opening" script and disabling the perform of the subscript "Splash". If you're not going to be moving the solution around or having users from the EU coming in, you can disable a few routines in the Upon Opening routine to speed things up a little. Disable the steps in Upon Opening that follow these comments:
to:
'''•''' Speed up the launch by Editing the "Upon Opening" script and disabling the perform of the subscript "Splash". If you're not going to be moving the solution around to different machines / usesr, you can disable a few routines in the Upon Opening routine to speed things up a little. Disable the steps in Upon Opening that follow these comments:
Changed lines 18-19 from:
to:
Changed lines 6-9 from:
'''•''' Show only one source at a time; when multiple sources are on screen at the same time the calendar sorts them against each other to see which events come first. This take time.
'''•''' If you're not [[AddingFields | showing related fields on the day view]], turn off the "refresh" at the end of the script "Go to Calendar Tab ( Tab Name )"
'''•''' If you're not [[AddingFields | showing related fields on the day view]], turn off the "refresh" at the end of the script "Go to Calendar Tab ( Tab Name )"
to:
'''•''' Show only one source at a time. Anything that shows more records at the same time asks FMP to work harder.
Added lines 10-11:
'''•''' If you'r frequently selecting multiple resource filters (or any other filter formatted as a checkbox) you'll see that we refresh the calendar after each selection. You can change this by editing the filter field in layout mode and moving the script trigger from OnObjectModify to OnObjectSave. You'll now need to press "enter" after selecting your filter items so you may want to add a small note to that effect below the filter fields in question.
Changed lines 14-15 from:
''•''' Speed up the launch by Editing the "Upon Opening" script and disabling the perform of the subscript "Splash".
to:
'''•''' Speed up the launch by Editing the "Upon Opening" script and disabling the perform of the subscript "Splash". If you're not going to be moving the solution around or having users from the EU coming in, you can disable a few routines in the Upon Opening routine to speed things up a little. Disable the steps in Upon Opening that follow these comments:
-> Check FileMaker Version
-> Write test -- is file editable?
-> Check system formats
-> Check FileMaker Version
-> Write test -- is file editable?
-> Check system formats
Added lines 14-15:
''•''' Speed up the launch by Editing the "Upon Opening" script and disabling the perform of the subscript "Splash".
Added lines 34-37:
'''•''' The "simple" views for Day and Week are somewhat faster. Select these on the Settings tab in the calendar sidebar. More here: [[Simple Views]].
'''•''' If you're entering a lot of events at the same time, you may not want the calendar to refresh after each event is entered. To achieve this simply close the Event Detail window after you've edited the event: the event will still be committed to FileMaker, but since the calendar hasn't refreshed the event won't show up and you can quickly create the next one. Almost any subsequent action will refresh the calendar (switching days, views, etc) and you can always refresh it manually.
'''•''' If you're entering a lot of events at the same time, you may not want the calendar to refresh after each event is entered. To achieve this simply close the Event Detail window after you've edited the event: the event will still be committed to FileMaker, but since the calendar hasn't refreshed the event won't show up and you can quickly create the next one. Almost any subsequent action will refresh the calendar (switching days, views, etc) and you can always refresh it manually.
Changed lines 32-33 from:
'''•''' If your server is not on the same physical network as your FileMaker client, there could be an undue amount of latency between them slowing things down. %newwin% [http://network-tools.com/ | Ping] your FileMaker Server to check this: the results really depend on what kinds of speed you can tolerate, but we you'll likely be happy with pings under 50-70ms. Anything above that and you may want to start asking some of the FileMaker Server hosting providers for test pings to their servers to see if they'd be faster than what you have.
'''•''' Finally, the calendar works harder when it has more work to do, so filtering or pre-filtering to show only the relevant records can speed things up a lot. More on filtering [Filtrs | here].
'''•''' Finally, the calendar works harder when it has more work to do, so filtering or pre-filtering to show only the relevant records can speed things up a lot. More on filtering [
to:
'''•''' If your server is not on the same physical network as your FileMaker client, there could be an undue amount of latency between them slowing things down. %newwin% [[http://network-tools.com/ | Ping]] your FileMaker Server to check this: the results really depend on what kinds of speed you can tolerate, but we you'll likely be happy with pings under 50-70ms. Anything above that and you may want to start asking some of the FileMaker Server hosting providers for test pings to their servers to see if they'd be faster than what you have.
'''•''' Finally, the calendar works harder when it has more work to do, so filtering or pre-filtering to show only the relevant records can speed things up a lot. More on filtering [[Filters | here]].
'''•''' Finally, the calendar works harder when it has more work to do, so filtering or pre-filtering to show only the relevant records can speed things up a lot. More on filtering [[Filters | here]].
Added lines 12-13:
'''•''' Make sure the fields you're mapping to on the "Source No X" layouts are indexed.
Added lines 31-33:
'''•''' If your server is not on the same physical network as your FileMaker client, there could be an undue amount of latency between them slowing things down. %newwin% [http://network-tools.com/ | Ping] your FileMaker Server to check this: the results really depend on what kinds of speed you can tolerate, but we you'll likely be happy with pings under 50-70ms. Anything above that and you may want to start asking some of the FileMaker Server hosting providers for test pings to their servers to see if they'd be faster than what you have.
'''•''' Finally, the calendar works harder when it has more work to do, so filtering or pre-filtering to show only the relevant records can speed things up a lot. More on filtering [Filtrs | here].
Changed line 18 from:
--> If ( $$sc_Mode = "Month" )\\
to:
--> If [ $$sc_Mode = "Month" ]\\
Changed lines 23-27 from:
Omit Record Constrain Found Set [ ]
\\End If
#
#Nothing found?
to:
Omit Record Constrain Found Set [ ]\\
End If\\
#\\
#Nothing found?\\
End If\\
#\\
#Nothing found?\\
Changed lines 23-24 from:
Omit Record Constrain Found Set [ ] End If
to:
Omit Record Constrain Found Set [ ]
\\End If
\\End If
Changed lines 23-24 from:
Omit Record Constrain Found Set [ ]
End If
End If
to:
Omit Record Constrain Found Set [ ] End If
Changed lines 23-24 from:
Omit Record Constrain Found Set [ ]\\End If\\#\\#Nothing found?
to:
Omit Record Constrain Found Set [ ]
End If
#
#Nothing found?
End If
#
#Nothing found?
Changed lines 23-27 from:
Omit Record Constrain Found Set [ ]
End If
#
#Nothing found?
End If
#Nothing found?
to:
Omit Record Constrain Found Set [ ]\\End If\\#\\#Nothing found?
Changed lines 24-27 from:
End If\\
#\\
#Nothing found?\\
to:
End If
#
#Nothing found?
#
#Nothing found?
Changed line 23 from:
Omit Record Constrain Found Set [ ]\\
to:
Omit Record Constrain Found Set [ ]
Changed lines 19-27 from:
Go
Insert
Omit Record Constrain Found Set [ ]
End If
to:
Enter Find Mode [ ]\\
Go to Object [ Object Name: "SourceTimeStart" ]\\
Insert Calculated Result [ "*" ]\\
[ Select ]\\
Omit Record Constrain Found Set [ ]\\
End If\\
#\\
#Nothing found?\\
Go to Object [ Object Name: "SourceTimeStart" ]\\
Insert Calculated Result [ "*" ]\\
[ Select ]\\
Omit Record Constrain Found Set [ ]\\
End If\\
#\\
#Nothing found?\\
Changed line 18 from:
--> If ( $$sc_Mode = "Month" )\
to:
--> If ( $$sc_Mode = "Month" )\\
Changed lines 10-28 from:
'''•''' Mapping the event summary to a [[MultiLineEvents | multi-line calc]] can slow things down a bit, especially if the calc is unstored. Try using a regular text field (without carriage returns) for your summary instead.
to:
'''•''' Mapping the event summary to a [[MultiLineEvents | multi-line calc]] can slow things down a bit, especially if the calc is unstored. Try using a regular text field (without carriage returns) for your summary instead.
'''•''' You may want to show only All Day events on the month view (since that view has the potential to show the most records, it is potentially the slowest as well). You can restrict the month view in this way pretty easily:
-> Edit the script "Write FileMaker Source to Variable" and find the comment "Nothing Found?".
-> Right *before* that comment add the following:
--> If ( $$sc_Mode = "Month" )\
--> Enter Find Mode [ ]
Go to Object [ Object Name: "SourceTimeStart" ]
Insert Calculated Result [ "*" ]
[ Select ]
Omit Record Constrain Found Set [ ]
End If
#
#Nothing found?
-> That will leave only the all day events.
'''•''' You may want to show only All Day events on the month view (since that view has the potential to show the most records, it is potentially the slowest as well). You can restrict the month view in this way pretty easily:
-> Edit the script "Write FileMaker Source to Variable" and find the comment "Nothing Found?".
-> Right *before* that comment add the following:
--> If ( $$sc_Mode = "Month" )\
--> Enter Find Mode [ ]
Go to Object [ Object Name: "SourceTimeStart" ]
Insert Calculated Result [ "*" ]
[ Select ]
Omit Record Constrain Found Set [ ]
End If
#
#Nothing found?
-> That will leave only the all day events.
Changed line 10 from:
'''•''' Mapping the event summary to a [[MultiLineEvents | multi-line calc]] can slow things down, especially if the calc is unstored. Try using a regular text field (without carriage returns) for your summary instead.
to:
'''•''' Mapping the event summary to a [[MultiLineEvents | multi-line calc]] can slow things down a bit, especially if the calc is unstored. Try using a regular text field (without carriage returns) for your summary instead.
Changed lines 8-10 from:
'''•''' If you're not [[AddingFields | showing related fields on the day view]], turn off the "refresh" at the end of the script "Go to Calendar Tab ( Tab Name )"
to:
'''•''' If you're not [[AddingFields | showing related fields on the day view]], turn off the "refresh" at the end of the script "Go to Calendar Tab ( Tab Name )"
'''•''' Mapping the event summary to a [[MultiLineEvents | multi-line calc]] can slow things down, especially if the calc is unstored. Try using a regular text field (without carriage returns) for your summary instead.
'''•''' Mapping the event summary to a [[MultiLineEvents | multi-line calc]] can slow things down, especially if the calc is unstored. Try using a regular text field (without carriage returns) for your summary instead.
Added line 8:
'''•''' If you're not [[AddingFields | showing related fields on the day view]], turn off the "refresh" at the end of the script "Go to Calendar Tab ( Tab Name )"
Changed lines 4-7 from:
Show only one source at a time; when multiple sources are on screen at the same time the calendar sorts them against each other to see which events come first. This take time.
to:
'''•''' Delete or rename any "Source No X" layouts you're not using. So if you're only using 1 source, delete the layout Source No 2 or edit the name by replacing "No" with "Was" as in "Source WAS 2".
'''•''' Show only one source at a time; when multiple sources are on screen at the same time the calendar sorts them against each other to see which events come first. This take time.
'''•''' Show only one source at a time; when multiple sources are on screen at the same time the calendar sorts them against each other to see which events come first. This take time.
Changed lines 6-7 from:
to:
Show only one source at a time; when multiple sources are on screen at the same time the calendar sorts them against each other to see which events come first. This take time.
Changed lines 4-6 from:
Show only one source at a time; when multiple sources are on screen at the same time the calendar sorts them against each other to see which events come first. This take time.
to:
* Delete or rename any "Source No X" layouts you're not using. So if you're only using 1 source, delete the layout Source No 2 or edit the name by replacing "No" with "Was" as in "Source WAS 2".
* Show only one source at a time; when multiple sources are on screen at the same time the calendar sorts them against each other to see which events come first. This take time.
* Show only one source at a time; when multiple sources are on screen at the same time the calendar sorts them against each other to see which events come first. This take time.
Added lines 1-6:
!! Here are some tips for getting all the speed you can from the calendar...
# Delete or rename any "Source No X" layouts you're not using. So if you're only using 1 source, delete the layout Source No 2 or edit the name by replacing "No" with "Was" as in "Source WAS 2".
Show only one source at a time; when multiple sources are on screen at the same time the calendar sorts them against each other to see which events come first. This take time.
# Delete or rename any "Source No X" layouts you're not using. So if you're only using 1 source, delete the layout Source No 2 or edit the name by replacing "No" with "Was" as in "Source WAS 2".
Show only one source at a time; when multiple sources are on screen at the same time the calendar sorts them against each other to see which events come first. This take time.