【问题标题】:how does processing flow in haml work?haml 中的处理流程如何工作?
【发布时间】:2010-10-15 08:34:09
【问题描述】:

我有一个运行测试套装的 run.haml 文件。一切正常,但我想在用户单击将他引导至此 haml 的链接后立即显示文本“正在启动测试套件:#{params['run']}”。

点击的链接告诉haml需要执行什么诉讼

%a(href="run?run=#{file}")

现在测试服运行完成后会显示所有内容。正在加载 run.haml 页面,直到脚本完成。

  • haml 处理流程是如何工作的?
  • 我可以在页面开始渲染后开始处理作业吗?
  • 我可以在浏览器中显示一些文本然后调用测试套件吗?

完成测试套装的运行需要几分钟。


    !!!  
    %html  
      %head  
        %title Running  
      %body
        = "Starting test suite: #{params['run']}"
        - output = %x[cd C:\\Program Files\\TestPro\\TestPro Automation Framework410 && ant -lib lib -f "C:\\Program Files\\TestPro\\TestPro Automation Framework410\\Output Files\\builds\\#{params['run']}.xml"]
        -#The result is
        %br
        = output.split("\n")[-2,2].join("<BR>")
        = "<br/>"*2
        %a(href="/")back to suits list

【问题讨论】:

    标签: ruby haml


    【解决方案1】:

    好吧,看——我的想法是,在该函数调用返回之前,它不会渲染所有内容(无论出于何种原因)。

    如果是这种情况,您需要单独处理该函数的结果,而不是加载测试工具页面——因此,您需要使用

    调用测试套件

    该选择取决于函数(通常)运行所需的时间长度 - 因此,根据复杂性,它可能是BackgrounDRb、@987654323 之类的良好候选者@ 或 delayed_job,甚至是自定义守护进程。

    最后,您可能会发现this example of using Sinatra with delayed_job 很有帮助。

    【讨论】:

    • @Joe:好吧,实际上我现在正在编写某种守护进程。如果至少显示页面标题,我很高兴。但是正如您所说,在该函数调用完成之前它不会呈现任何内容。
    • 也许我们可以澄清这个问题——问题可能不在于 Haml。毕竟,.haml 页面处理此类事情的方式与普通 .erb 页面没有任何不同。同样的事情也会发生。所以现在的问题是如何重新设计页面以仅在页面加载后调用测试套件——或者我错过了什么?
    • 我可以从haml运行单独的工作线程吗?你能给我任何关于在 ruby​​ 中使用单独的工作线程的网址吗?
    • 你是对的。我想在页面开始渲染后开始处理作业。
    • 现在的问题是从工作线程传回数据。一切都在 Ruby 中; Haml 只是一个用于生成 HTML 的模板。仔细研究这个例子。修改它以运行您的测试(而不是从 Pig Latin 翻译。)如果您仍然遇到障碍,请尝试发布一个新问题。或者在这里问:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多