Back to our application, as soon as we have put some value into the persistent
message property of the Another page, Tapestry will reserve a piece of memory
on the server, associate it first with the user, and second, with the Another page to
which the persistent property belongs. Now every time we request for the Another
page, Tapestry will notice that the page has a persistent property, and put the value
stored for it in the session into that property, no matter what instance of the page
is being used. Everything will work automatically, as soon as we have used the
correct annotation.
Sounds great, but imagine, there are a few thousand users who are playing with
the application simultaneously. For each of them, Tapestry will have to create a
session, which might require a substantial amount of memory. Also, it takes some
work to store the value into the session and retrieve it from there, even if this
happens invisibly.
As a result, having a persistent property makes the application less scalable. This
might be not a problem for many applications but would be for busy applications.
Let's consider another scenario.
We were so impressed by the message displayed by the Another page that we
decided to make a bookmark, and returned the next day to contemplate the message
again, only to discover that the message is not there anymore.
Pages:
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95