如何在两个页面之间均匀分割流量

时间:2013-10-11 14:30:46

标签: php jquery

此时纯粹是假设,还没有代码。试图找出最好的方法来做到这一点。我们是公司“A”,我们有两个合作伙伴,公司“B”和公司“C”。在注册表单上,我们收集数据,然后将其传递给合作伙伴“B”或parnter“C” - 这部分很好,可以正常工作。我在前端使用ajax,在后端使用cURL处理器,因此没有人离开我们的网站,只是将数据直接发布到合作伙伴的表单。

不幸的是,由于合作伙伴“B”和“C”所需的数据,我们发布的表单不同,我们必须有2个单独的html表单文件,每个合作伙伴一个。问题是我们需要从一个URL完成所有这些操作,而不是每个伙伴的单独URL。

我猜我们会使用具有特定网址的“处理程序”页面 - http://www.example.com/parterForm.php

然后在“处理程序”页面中,我们将使交换机提供正确的内容。我需要一种方法来均匀地分割我们发送数据的人。我想在非常精细的MS级别上进行切换,例如:

如果时间= 0-500毫秒 - 为B分页服务;

如果时间= 501-1000ms-保留合作伙伴C页面;

所有在'handler'页面内完成 - 调用php包含的表单?

我意识到这不是一个特定的代码问题而且我发誓,这是我以前从未做过的事情,并试图弄清楚如何做到这一点。我是btw的创意总监谁编码,没有其他资源可用。 感谢。

2 个答案:

答案 0 :(得分:2)

嗯,是的,你可以这样做。事实上,这将相当不错。重要的是确保表格适合合作伙伴。您可以使用$_SESSION,或检查哪些字段已发送,并从选择的合作伙伴中推断出来。

例如:

if( fmod(microtime(),1) < 0.5) include("forms/partner1.php");
else include("forms/partner2.php");

然后提交时:

$partner1fields = array("name","email","country","dateofbirth");
$partner2fields = array("name","address","postcode","ethnicity");
// the above are examples - they should correspond to the $_POST keys you expect
// now check if they match. Array equality depends on order, so sort first
$postkeys = array_keys($_POST);
sort($postkeys);
sort($partner1fields);
sort($partner2fields);
if( $postkeys == $partner1fields) { /* submit to partner 1 */ }
elseif( $postkeys == $partner2fields) { /* submit to partner 2 */ }
else {
    echo "<p>Given keys did not match either partner</p>";
    echo "<p>POST keys: ".implode(", ",$postkeys)."</p>";
    echo "<p>Partner 1 keys: ".implode(", ",$partner1keys)."</p>";
    echo "<p>Partner 2 keys: ".implode(", ",$partner2keys)."</p>";
    echo "<p>Please report this error to the site administrator.</p>";
    exit;
}

答案 1 :(得分:0)

首先,MS我认为你的意思是客户端和服务器之间的延迟?

  1. 使用javascript从服务器加载一个微小的图像,或者进行一个获取一个char或其他东西的ajax调用并计算时间。为了测试你需要做一些真正的ping并调整你的js时间来反映ping往返。例如,如果加载图像的js时间是500ms但是ping时间只有80ms,那么结果可能除以6。这将永远不会非常精确,因为客户端和服务器都有处理开销。确保使用图像或ajax响应回显没有缓存标头或过去的过期时间。

  2. 很简单,如果时间&lt; = 500重定向到表单A,如果时间&gt; 500重定向到表单B或使用ajax加载它们。