And what's the difference to a StatefulSnippet? ------------------------------------- Adam Warski<a...@warski.org> wrote:
Hello, > RequestVar-s lifetime is expanded beyond the actual request, which is > not applicable for TransientRequestVar. For instance say you have a > page and you set some state on a RequestVar ... then you render an > Ajax link. After the page is rendered, when your ajax function is > invoked, you RequestVar state set when rendering the page is still > visible. > > But is there is problem you're chasing or is it just terminology? I understand the difference; and I think the terminology is a bit misleading. But right now I have two questions: 1) Can I have in lift a "true" request variable/snippet, that is such which has a lifetime of one request (without any ajax callbacks)? I can't use TransientRequestVar because it's private. It would be useful to complete my ajax-form example (after an item is saved, a new one should be used; I guess I could just store the model instance in a RequestVar and set it to a new object after saving, but maybe there's a nicer way). 2) Why would one want to use DispatchSnippets? The wiki says they are better because they are not instantiated whenever a tag is occurred. But right now, reflection snippets also aren't - they are instantiated at most once per request. > Br's, > Marius > > On Dec 28, 6:04 pm, Adam Warski <a...@warski.org> wrote: >> Hello, >> >>> Yes, the article is out of date now... Lift now makes sure that multiple >>> references to a single snippet in the same request context use the same >>> instance of that snippet. >> >> I see, so the rationale behind using dispatch snippets is out of date also. >> Except that you save one reflection call per page/request. So are there any >> reasons to use DispatchSnippets now? >> >>> Reflection snippets do not have the same scope as request vars... rather, >>> the snippet is held in a request var. >> >> Which essentialy makes them have the same scope as request vars :) >> >> By the way, is there a "true" request-scope variable? I saw that there's >> TransientRequestVar, but it's private in the liftweb package. >> >> Adam >> >>> Cheers, Tim >> >>> On 28 Dec 2009, at 14:33, Adam Warski wrote: >> >>>> Hello, >> >>>> on the wiki page about reflection snippets >>>> (http://wiki.github.com/dpp/liftweb/about-snippets), it is written: >> >>>> "Every time you call the reflection snippet in your markup code, a new >>>> instance is instantiated and the appropriate method invoked" >> >>>> However this doesn't seem to be true (I'm using 1.1-M8). I have modified >>>> the example in the tutorial to use ajax to submit the form (as Marius and >>>> others advised me in another thread), and I discovered that after I add an >>>> item, then try to add another one, the first one is modified, which would >>>> mean that the same snippet instance is used (the snippet - TD - is a >>>> reflection snippet, as far as I understand the terminology). >> >>>> That would mean that reflection snippets have the same scope as >>>> RequestVars, that is that there's at most one instance per rendered page. >>>> Marius wrote that this changes recently, so maybe it's a side-effect? >> >>>> Also, do you think that "RequestVar" is a good name? For me it suggests a >>>> variable which has a lifecycle only for one http request. In the Seam >>>> framework, for example, there are two scopes: request and page (and many >>>> others), the first one being a "true" request scope, the second having >>>> essentially the same scope as RequestVar. So maybe it should be called >>>> PageVar? >> >>>> -- >>>> Adam >> >>>> -- >> >>>> You received this message because you are subscribed to the Google Groups >>>> "Lift" group. >>>> To post to this group, send email to lift...@googlegroups.com. >>>> To unsubscribe from this group, send email to >>>> liftweb+unsubscr...@googlegroups.com. >>>> For more options, visit this group >>>> athttp://groups.google.com/group/liftweb?hl=en. >> >>> -- >> >>> You received this message because you are subscribed to the Google Groups >>> "Lift" group. >>> To post to this group, send email to lift...@googlegroups.com. >>> To unsubscribe from this group, send email to >>> liftweb+unsubscr...@googlegroups.com. >>> For more options, visit this group >>> athttp://groups.google.com/group/liftweb?hl=en. > > -- > > You received this message because you are subscribed to the Google Groups > "Lift" group. > To post to this group, send email to lift...@googlegroups.com. > To unsubscribe from this group, send email to > liftweb+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/liftweb?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/liftweb?hl=en. -- You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.