# File lib/mini_profiler/profiler.rb, line 83
    def serve_results(env)
      request     = Rack::Request.new(env)
      id          = request[:id]
      page_struct = @storage.load(id)
      unless page_struct
        @storage.set_viewed(user(env), id)
        id        = ERB::Util.html_escape(request['id'])
        user_info = ERB::Util.html_escape(user(env))
        return [404, {}, ["Request not found: #{id} - user #{user_info}"]]
      end
      unless page_struct[:has_user_viewed]
        page_struct[:client_timings]  = TimerStruct::Client.init_from_form_data(env, page_struct)
        page_struct[:has_user_viewed] = true
        @storage.save(page_struct)
        @storage.set_viewed(user(env), id)
      end

      # If we're an XMLHttpRequest, serve up the contents as JSON
      if request.xhr?
        result_json = page_struct.to_json
        [200, { 'Content-Type' => 'application/json'}, [result_json]]
      else
        # Otherwise give the HTML back
        html = generate_html(page_struct, env)
        [200, {'Content-Type' => 'text/html'}, [html]]
      end
    end