Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 写入文件,避免在x时间段内被覆盖_Php_Jquery_File_Highcharts_Concurrentmodification - Fatal编程技术网

Php 写入文件,避免在x时间段内被覆盖

Php 写入文件,避免在x时间段内被覆盖,php,jquery,file,highcharts,concurrentmodification,Php,Jquery,File,Highcharts,Concurrentmodification,我有一个奇怪的问题,我现在正设法解决一段时间。我制作了一个web应用程序,可以获取使用Highcharts渲染的图形的数据 该脚本从数据库获取数据,将其保存到文件中,并使用jquery中的$.getJson方法呈现图形,该方法转到另一个ajax文件并处理保存的数据。用户可以花x个时间浏览图形,每次用户更改缩放级别时,一个ajax请求被发送回我的ajax页面,该页面再次使用保存的数据文件将图形数据发送回 现在的问题是,如果另一个用户使用该应用程序,而原始用户仍在使用该图形,且其不断被ajax文件更

我有一个奇怪的问题,我现在正设法解决一段时间。我制作了一个web应用程序,可以获取使用Highcharts渲染的图形的数据

该脚本从数据库获取数据,将其保存到文件中,并使用jquery中的$.getJson方法呈现图形,该方法转到另一个ajax文件并处理保存的数据。用户可以花x个时间浏览图形,每次用户更改缩放级别时,一个ajax请求被发送回我的ajax页面,该页面再次使用保存的数据文件将图形数据发送回

现在的问题是,如果另一个用户使用该应用程序,而原始用户仍在使用该图形,且其不断被ajax文件更新,则保存的数据文件将被覆盖,原始用户将收到错误的图形数据发送回他们


我考虑过使用$\u会话,但是数据有时可能非常大。还有其他想法吗?

如果您有多个用户,那么不要对所有用户使用相同的文件名。e、 g

$cache_file = 'cache-' . session_id() . '.txt';

因此,文件将绑定到特定用户。

如果有多个用户,则不要对所有用户使用相同的文件名。e、 g

$cache_file = 'cache-' . session_id() . '.txt';

使文件与特定用户绑定。

您可以为不同的用户使用不同的文件


如果将
session\u id()
的值添加到文件名中,则每个工作会话都有不同的文件。

您可以为不同的用户使用不同的文件


如果将
session\u id()
的值添加到文件名中,则每个工作会话都会有不同的文件。

用户使用完文件后,是否可以自动删除这些文件,因为这样会导致随着时间的推移生成大量文件。否。那由你决定。如果您滚动自己的会话处理程序,您还可以使用会话清理例程删除这些缓存文件。否则,一个简单的cron作业来删除在某个时间段内未被触碰的文件也会起作用。用户使用完这些文件后,是否可能自动删除这些文件,因为这种方式会导致随着时间的推移生成大量文件。否。那由你决定。如果您滚动自己的会话处理程序,您还可以使用会话清理例程删除这些缓存文件。否则,一个简单的cron任务来删除在某个时间段内未被触动的文件也会起作用。你可以说我是个爱管闲事的人,但是。。。为什么这里需要中间文件?我的意思是,如果您只想在给定的时间间隔内显示图表的单个状态,为什么不在定义的时间间隔内向服务器端脚本发出Ajax请求,以便动态地重新计算数据呢?我必须在这里同意jackflash,我认为没有理由使用中间文件。如果数据没有变化,原始用户没有理由必须在zoom上重新请求数据,即使数据在变化,从数据库重新获取数据的成本有多高?从数据库获取数据的成本非常高。。。因为提取和处理它需要很多时间。另外,Highcharts需要处理大量的数据,这就是为什么我需要使用一个中间文件,以便将数据平均到Highcharts可以处理的较少点。对。。但是每次请求中间文件时,您都会得到整个文件,然后用javascript对其进行过滤,对吗?至于数据库查询,您优化了表和查询了吗?没有,php正在过滤它,然后使用json编码的数组将数据发送回,然后javascript在客户端对该数组进行迭代,并将其推送到图形中。不幸的是,表的形状不是最好的,索引也很糟糕,这是我无法控制的事情,所以我不得不改变它。你可以说我是个爱管闲事的人,但是。。。为什么这里需要中间文件?我的意思是,如果您只想在给定的时间间隔内显示图表的单个状态,为什么不在定义的时间间隔内向服务器端脚本发出Ajax请求,以便动态地重新计算数据呢?我必须在这里同意jackflash,我认为没有理由使用中间文件。如果数据没有变化,原始用户没有理由必须在zoom上重新请求数据,即使数据在变化,从数据库重新获取数据的成本有多高?从数据库获取数据的成本非常高。。。因为提取和处理它需要很多时间。另外,Highcharts需要处理大量的数据,这就是为什么我需要使用一个中间文件,以便将数据平均到Highcharts可以处理的较少点。对。。但是每次请求中间文件时,您都会得到整个文件,然后用javascript对其进行过滤,对吗?至于数据库查询,您优化了表和查询了吗?没有,php正在过滤它,然后使用json编码的数组将数据发送回,然后javascript在客户端对该数组进行迭代,并将其推送到图形中。不幸的是,表的形状不是最好的,索引也很糟糕,这是我无法控制的,所以我不得不改变它。