parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

moko 04.06.2015 20:31

Вот так - вроде как работает. Проблема в том, что у вас код передается параметром. А в вызове load из loadIfModified он передается уже строкой, то есть код параметра исполняется до вызова метода load. Естественно тогда $response еще пуст.
@main[]
#^if(^load[http://www.artlebedev.ru/;response]){
^if(^loadIfModified[^date::now(-1);http://www.artlebedev.ru/;response]){
    loaded, ^response.text.length[]=$response.CLASS_NAME
}{
    error
}
   
   
@load[URL;variable;headers;_caller]
^if(!def $_caller){
    $_caller[$caller.self]
}

^try{
    $file[^file::load[text;^taint[as-is;$URL]][
        $.headers[$headers]
    ]]

    $_caller.$variable[$file]

    in load: ^response.text.length[]=$response.CLASS_NAME

    $result(1)
}{
    $exception.handled(true)
    $result(0)
}

@loadIfModified[date;URL;variable]
$result(^load[$URL;$variable][
    $.if-modified-since[$date]
][$caller.self])