2010-12-04 3 views
2

Ich habe eine Spur, die ich verwende, um App-Geschichte in KRL zu verfolgen. Ich suche nach einer einfachen Möglichkeit, den Trail zu debuggen, einschließlich zu sehen, was gerade auf dem Trail ist und es zu löschen.Wie überprüfe und interagiere ich mit Trails in KRL?

Gibt es eine einfache Möglichkeit, das in KRL zu tun?

+0

sicher sein, um die Antwort zu akzeptieren, wenn es funktioniert und es ist die beste Antwort. –

Antwort

2

Der einfachste Weg für mich zu sehen, was auf der Spur ist, ist es, seinen Inhalt auf die Browser-Konsole auszugeben.

rule inspect_data_on_trail { 
    select when pageview ".*" 
    pre { 
    visitedDomains = ent:visitedDomains; 
    } 
    { 
    emit <| 
     console.log(visitedDomains); 
    |>; 
    } 
} 

firebug Ausgang nach ruleset mehrmals ausgeführt wird:

alt text

Um Einheit Variablen einschließlich Pfade zu löschen, ich schreibe in der Regel nur eine Regel, die auf einer Domäne auswählt, die nicht Teil meiner App ist Erfahrung und deaktivieren Sie die Möglichkeiten, wenn die App auf dieser Domain ausgeführt wird.

rule clear_everything { 
    select when pageview "yahoo\.com" 
    { 
    notify("Cleared",":)") with sticky = true; 
    } 
    fired { 
    clear ent:visitedDomains; 
    } 
} 

Voll Beispiel App:

ruleset a60x458 { 
    meta { 
    name "trail-debugging" 
    description << 
     trail-debugging 
    >> 
    author "Mike Grace" 
    logging on 
    } 

    rule put_data_onto_trail { 
    select when pageview ".*" 
    pre { 
     domain = page:url("domain"); 
    } 
    { 
     notify("Thanks for visiting #{domain}","You visit has been recorded") with sticky = true; 
    } 
    fired { 
     mark ent:visitedDomains with domain; 
    } 
    } 

    rule inspect_data_on_trail { 
    select when pageview ".*" 
    pre { 
     visitedDomains = ent:visitedDomains; 
    } 
    { 
     emit <| 
     console.log(visitedDomains); 
     |>; 
    } 
    } 

    rule clear_everything { 
    select when pageview "yahoo\.com" 
    { 
     notify("Cleared",":)") with sticky = true; 
    } 
    fired { 
     clear ent:visitedDomains; 
    } 
    } 

} 
+0

+1, große Antwort! – Alex

Verwandte Themen