Как я могу проверять и взаимодействовать с трассами в KRL? - PullRequest
2 голосов
/ 04 декабря 2010

У меня есть след, который я использую для отслеживания истории приложений в KRL. Я ищу простой способ отладки следа, включая просмотр того, что в данный момент находится на следе, и его очистку.

Есть ли простой способ сделать это в KRL?

1 Ответ

2 голосов
/ 04 декабря 2010

Для меня самый простой способ увидеть, что находится на следе, - вывести его содержимое на консоль браузера.

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

вывод firebug после запуска набора правил несколько раз:

alt text

Чтобы очистить переменные сущности, включая трейлы, я обычно пишу правило, которое выбирает домен, который не является частью моего приложения, и очищаю переменные, когда приложение запускается в этом домене.

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

Полный пример приложения:

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;
    }
  }

}
...