On 2/23/10 2:49 PM, Thomas Mortagne wrote: > On Tue, Feb 23, 2010 at 14:08, Vincent Massol<[email protected]> wrote: >> >> On Nov 25, 2009, at 11:25 AM, Thomas Mortagne wrote: >> >>> On Wed, Nov 25, 2009 at 10:26, Vincent Massol<[email protected]> wrote: >>>> >>>> On Nov 25, 2009, at 10:15 AM, Jerome Velociter wrote: >>>> >>>>> On 11/25/09 10:11 AM, Jerome Velociter wrote: >>>>>> On 11/24/09 7:07 PM, Sergiu Dumitriu wrote: >>>>>>> On 11/23/2009 10:43 AM, Vincent Massol wrote: >>>>>>>> >>>>>>>> On Nov 23, 2009, at 10:40 AM, Thomas Mortagne wrote: >>>>>>>> >>>>>>>>> I just found that we have a "ajax" URL parameter already. It's >>>>>>>>> put in >>>>>>>>> the context in XWikiAction so we could check for it in statistics. >>>>>>>>> >>>>>>>>> WDYT about reusing it ? >>>>>>>> >>>>>>>> What is this URL param doing? The name doesn't sound very >>>>>>>> explicit to >>>>>>>> tell not to log stats... >>>>>>> >>>>>>> Currently it prevents in some cases returning the full response. For >>>>>>> example, the /cancel/ action normally redirects to view, which in >>>>>>> turn >>>>>>> renders the entire page. An AJAX request just wants to trigger the >>>>>>> cancel action, and doesn't care for the response at all. Not going >>>>>>> through the rendering engine is a good performance boost. >>>>>>> >>>>>>> It's not used for every request done through AJAX, since it must be >>>>>>> added manually. >>>>>> >>>>>> In the long run, I don't like too much this solution, since it forces >>>>>> developers to be aware of that and to add the ajax=1 to all their >>>>>> AJAX >>>>>> requests. Using a different action for service like /service/ >>>>>> >>>>>> Jerome >>>>>> >>>>>> sounds more natural, and easier to learn. >>>>> >>>>> Read: >>>>> >>>>> "Using a different action for service like /service/sounds more >>>>> natural, >>>>> and easier to learn. >>>> >>>> "service" doesn't mean much IMO but +1 for a different action on the >>>> longer run. Note that WCAG complains about URL with query string (for >>>> readability reason) so this solves this problem too. >>> >>> Adding an action is not that difficult if everyone is agree to go the >>> action way now... >> >> Answering again since we need to move on. My current feeling: >> >> * Using a new action or passing a parameter to identify a query that >> shouldn't be logged (through a URL parameter) sounds the same kind of >> complexity to me. >> * That said I'm +0 for a new view action (I hope there are no other actions >> required though) >> * I keep maintaining that the need to not log something should be >> independent of the action called and thus even if we had a new action we can >> also add a URL parameter to prevent stats logging. "logstats=0|1" sounds >> good to me. We could easily make the new view action set the parameter. > > For this one the question is: do we want to allow a user to do > whatever he wants and be invisible from statistics point of view. I > still don't think so. Whatever we think about that it's not a minor > change. > >> * Re the question on how the stats code will get access to that parameter, >> yes, it could be put in the context (it could be retrieved from the request >> URL but it' not a good idea to become dependent on the environment). > > That's one of the main difference between action solution and > parameter solution: you don't have anything do here with action > solution because statistics module simply don't know about this action > and don't listen to it so it's not the same kind of complexity. With > parameter solution you need to introduce two new API (the parameter > and the context value) that should be taken into account everywhere > where action is just a kind of plugin. > >> * I'd be +0 to reuse the ajax param too although in the longer run I'd >> prefer to introduce a "logstats" param since not wanting to log some stats >> shouldn't be related to ajax specifically. It's a more general use case. > > The only good point about this one is that we don't introduce anything > new publicly but apart from this i don't like it very much. It does > not cover properly our use case, we don't want to avoid statistics for > an ajax query that would delete an object for example, that's a valid > user action (done using ajax but still a user action). > >> >> WDYT? > > So to summarize IMO the action solution is the safest and easiest > solution for the use cases we currently have which are internal > queries (mostly ajax).
+1 Jerome > >> >> Thanks >> -Vincent >> >>>> Thanks >>>> -Vincent >>>> >>>>> Jerome" >>>>> >>>>>>> >>>>>>>> I think I'd prefer a more explicit param. >>>>>>>> >>>>>>>> Thanks >>>>>>>> -Vincent >>>>>>>> >>>>>>>>> On Thu, Nov 19, 2009 at 12:04, Thomas Mortagne >>>>>>>>> <[email protected]> wrote: >>>>>>>>>> On Thu, Nov 19, 2009 at 11:36, Vincent Massol<[email protected]> >>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> On Nov 19, 2009, at 11:26 AM, Thomas Mortagne wrote: >>>>>>>>>>> >>>>>>>>>>>> On Thu, Nov 19, 2009 at 08:50, Vincent Massol<[email protected] >>>>>>>>>>>>> >>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> On Nov 18, 2009, at 5:16 PM, Thomas Mortagne wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>> >>>>>>>>>>>>>> Since we introduce document footer informations view >>>>>>>>>>>>>> statistics >>>>>>>>>>>>>> are >>>>>>>>>>>>>> store several time for the same user view of a page. >>>>>>>>>>>>>> >>>>>>>>>>>>>> See http://jira.xwiki.org/jira/browse/XWIKI-4590 >>>>>>>>>>>>>> >>>>>>>>>>>>>> The issue is that theses tabs are loaded asynchronously in >>>>>>>>>>>>>> ajax >>>>>>>>>>>>>> and >>>>>>>>>>>>>> make a call using view action. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Here are some solutions: >>>>>>>>>>>>>> 1/ introduce a new action "viewinternal", "service" or >>>>>>>>>>>>>> anything >>>>>>>>>>>>>> else >>>>>>>>>>>>>> that would be a "view" action without UI and not taken into >>>>>>>>>>>>>> account by >>>>>>>>>>>>>> statistics (that register for "view" action events) >>>>>>>>>>>>> >>>>>>>>>>>>> +0 >>>>>>>>>>>>> >>>>>>>>>>>>>> 2/ pretty much the same thing that 1/ but based on a URL >>>>>>>>>>>>>> parameter >>>>>>>>>>>>> >>>>>>>>>>>>> +1 >>>>>>>>>>>>> >>>>>>>>>>>>> This is much better to me since: >>>>>>>>>>>>> * Stats are a transersval concern, not related to the view >>>>>>>>>>>>> action >>>>>>>>>>>>> especially. I'm pretty sure we can imagine use cases where we >>>>>>>>>>>>> don't >>>>>>>>>>>>> want to register stats for actions other than view >>>>>>>>>>>>> * The way I'd like to implement the actions later on (xwiki- >>>>>>>>>>>>> actions >>>>>>>>>>>>> module) is to have action pipelines and this "saving stats" >>>>>>>>>>>>> action >>>>>>>>>>>>> will be implemented as a post-action that would be injected >>>>>>>>>>>>> after the >>>>>>>>>>>>> main actions. Thus only this post action will need to check >>>>>>>>>>>>> the >>>>>>>>>>>>> parameter which will be transparent to the other actions, thus >>>>>>>>>>>>> providing a good separation of concern. >>>>>>>>>>>> >>>>>>>>>>>> So you want statistics module to go look at URL parameters ? >>>>>>>>>>> >>>>>>>>>>> I said the opposite actually: it's the action that should do >>>>>>>>>>> this. >>>>>>>>>>> Right now (current code) we could just have the view action >>>>>>>>>>> check >>>>>>>>>>> for >>>>>>>>>>> the param. >>>>>>>>>> >>>>>>>>>> And do what, put something in the context ? The statistics module >>>>>>>>>> will >>>>>>>>>> still receive a "view" action event. It has to check something. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> How would >>>>>>>>>>>> you name this parameter ? >>>>>>>>>>> >>>>>>>>>>> Some proposals: >>>>>>>>>>> - "stats=true|false" (or 0|1 to follow the current "tradition") >>>>>>>>>>> - "logstats" >>>>>>>>>>> >>>>>>>>>>>> Also i really don't like that ajax calls use the standard view >>>>>>>>>>>> action >>>>>>>>>>> >>>>>>>>>>> Can you explain? I don't see the problem. >>>>>>>>>> >>>>>>>>>> "view" action is supposed to be a user view of a document, ajax >>>>>>>>>> calls >>>>>>>>>> are retrieving structured informations from a service located >>>>>>>>>> in a >>>>>>>>>> page most of the time so they have to explicitly tweak the URL to >>>>>>>>>> remove the UI, indicate they want plain renderer... and so get >>>>>>>>>> something that has nothing to do with what "view" action is >>>>>>>>>> supposed >>>>>>>>>> to be. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Thanks >>>>>>>>>>> -Vincent >>>>>>>>>>> >>>>>>>>>>>> so the "viewinternal" action is needed anyway IMO. >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> 3/ use an additional AJAX request similar to a google >>>>>>>>>>>>>> analytics >>>>>>>>>>>>>> call >>>>>>>>>>>>>> to record statistics >>>>>>>>>>>>> >>>>>>>>>>>>> -1 >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks >>>>>>>>>>>>> -Vincent >>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> As i said in jira I'm against 3/ >>>>>>>>>>>>>> >>>>>>>>>>>>>> 2/ seems too big for a URL parameter to me and it makes >>>>>>>>>>>>>> statistics >>>>>>>>>>>>>> depends on URL parameters where 1/ fix the issue without >>>>>>>>>>>>>> touching >>>>>>>>>>>>>> anything in the statistics module >>>>>>>>>>>>>> >>>>>>>>>>>>>> +1 for 1/ >>>>>>>>>>>>>> +0 for 2/ >>>>>>>>>>>>>> -1 for 3/ >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> Thomas Mortagne >> _______________________________________________ >> devs mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/devs >> > > > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

