Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何设置访问页面的用户数的最大值?

如何设置访问页面的用户数的最大值?
EN

Stack Overflow用户
提问于 2018-10-12 02:00:35
回答 8查看 354关注 0票数 0

我目前正在开发一个具有编辑按钮的应用程序:

我的编辑按钮:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<th title="Edit task" class="edit" style="float: right; $color;">
    <?php
    echo "<a href=edit.php?id=" . $row["id"] . ">
              <i class=material-icons>edit</i>
          </a>";
    ?>      
</th>

我的目标是一次只有一个人可以编辑一篇文章。这有可能吗?如果是的话,我怎么做呢?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2018-10-19 04:37:05

如果您只想禁用按钮以避免并发编辑,那么这是一个糟糕的想法,因为用户总是可以通过直接链接打开编辑页面。实际上,您需要实现并发控制。

您可以实现对记录的锁定以实现并发控制。

例如,可以使用以下简单算法实现并发控制:

  1. 添加将包含锁定到项目的结束时间的param。
  2. 在编辑页面上:如果锁定时间大于当前时间,则将此时间与当前时间进行比较,然后将修改文章的可能性告知用户,否则将编辑页面显示给用户。
  3. 在编辑页面上:如果将文章的编辑页显示给用户,则会增加锁定param的结束时间,例如,递增5分钟。
  4. 如果用户完成了对记录的修改并将其保存,则应重置锁定的结束日期。

但是,您可以实现乐观锁定,而不是这个算法。

乐观锁定允许用户同时打开编辑页面,但它禁止以并行方式保存记录。这是避免对记录进行并行修改的一种更好的方法。

乐观锁定包括接受或拒绝с更改的记录,以依赖记录版本。

它的工作原理如下:每一篇文章都有一个“version”param,其中包含了记录修改的数量。一个用户打开版本等于1的文章的编辑页面,另一个用户同时打开它。他们都保存了同一篇文章。首先,您得到一个记录修改请求,并将存储记录的版本与更新记录的版本进行比较,如果它们相等,那么您应该接受更改,并将更新的记录保存在存储中,并以1的增量增加“version”param,否则,您应该拒绝更改。由于该算法的结果,存储记录的版本将等于2。接下来,您将得到第二个请求并再次比较版本,但是由于存储记录的版本等于2,而从第二个请求中更新的记录版本等于1,因此此更改将被拒绝。当然,您必须将其更改的拒绝通知用户,并使用户能够更新新的记录变体。

票数 2
EN

Stack Overflow用户

发布于 2018-10-22 05:04:39

这就是我在我的申请中所做的:

当用户按下“编辑”按钮时,将时间戳记录在数据库中,并将用户重定向到编辑页面。在编辑页面中,设置一个计时器并将其显示给可以编辑记录的用户,直到计时器用完为止。

例如,根据您的记录,您可以考虑用户编辑记录的时间为2分钟。时间从01:59“开始到00‘:00”。

对于其他用户,单击“编辑”按钮时,应检查其他用户是否正在编辑该记录,您可以通过从登录数据库中计算时间来实现这一点。

如果用户编辑2分钟以下的记录并保存它,您可以删除编辑日志,让其他用户进行编辑。

票数 1
EN

Stack Overflow用户

发布于 2018-10-12 02:42:01

以我的观点来看,这不是完全可能的。

但是试着用下面的方式来做。

您可以在数据库中添加“打开”和“时间”两列

如果有人在编辑,将“打开”设置为“true”或“false”。还将时间戳设置为“time”列。在编辑过程中,每隔几秒钟替换一次时间戳。

如果有人打开它,检查'open‘列和它的'true',计算从' time’列传递的时间。如果超过一定的时间(例如2或3分钟),假设另一个用户不再编辑,并允许该用户进行编辑。

为了说清楚,

您需要添加一个ajax调用,它是在每分钟/秒之后更新时间戳。如果您在编辑页面中。因此,如果有人关闭浏览器,时间戳将不会更新,在下一个用户尝试编辑之后,如果时间戳较旧,则允许编辑该用户。因为我们假设用户关闭了选项卡或浏览器,因此没有更新标志,但时间戳更旧。

这不是完美的解决方案,但你可以试试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52777070

复制
相关文章
jmeter读取csv文件
操作步骤: 1.读取csv文件 2.编辑httpSampler
互联网金融打杂
2018/08/02
1.5K0
jmeter读取csv文件
Tensorflow | 读取csv文件
结果好长,给出关键的部分: INFO:tensorflow:Saving evaluation summary for step 12001: accuracy = 0.966667, loss = 0.461221 Accuracy: 0.966667
努力在北京混出人样
2019/02/18
1.8K0
JAVA读取csv文件_java读取csv文件某一列
当读取的是一个简单的csv文件,即文件的列字段中不包含分隔符时,可以使用BufferedReader或者Scanner类去读取
全栈程序员站长
2022/11/16
3.8K0
go语言读取CSV文件
package main import ( "encoding/csv" "fmt" "io/ioutil" "strings" ) // 游戏读取数据,读取游戏配置数据 func ReadCsv_ConfigFile_Fun(fileName string) bool { // 获取数据,按照文件 fileName = "./csv/" + fileName cntb, err := iouti
李海彬
2018/03/22
6.5K0
Python学习:读取csv文件
CSV是Conma Sepatrate Values(逗号分隔值)的缩写,文档的内容是由‘,’分隔的一列列数据构成的。CSV格式是电子表格和数据库最常用的导入和导出格式。 CSV模块实现了以CSV格式读取和写入表格数据,它允许程序员以Excel首选格式写入数据,或者从Excel生成的文件中读取数据。
烤粽子
2021/07/07
2.7K0
Python学习:读取csv文件
读取csv(tsv)文件出错
用以下语句读tsv文件:df_in=pd.read_csv('../data/voyage_report_20220623.tsv', sep='\t')报错如下:ParserError: Error tokenizing data. C error: EOF inside string starting at row 15212改成:df_in=pd.read_csv('../data/voyage_report_20220623.tsv', sep='\t',quoting=csv.QUOTE_NONE
西西木木
2022/06/24
2K0
java读取写入CSV文件
[1]使用Split函数分成一个String[]: https://blog.csdn.net/u013555719/article/details/106029538
演化计算与人工智能
2020/08/14
4.1K0
java读取写入CSV文件
python中如何打开csv文件_python如何读取csv文件
python如何读取csv文件,我们这里需要用到python自带的csv模块,有了这个模块读取数据就变得非常容易了。
全栈程序员站长
2022/09/16
7.9K0
python中如何打开csv文件_python如何读取csv文件
QT 读取csv文件「建议收藏」
最近项目中提出的需求是从excel表格中导入数据,查阅了很多资料之后,发现直接操作xls格式文件并不容易,之后找到了一个比较好的解决办法,那就是把xls文件另存为csv文件,然后在程序中进行操作。首先大致说明一下这两种格式的区别:
全栈程序员站长
2022/09/13
3.8K0
python文件操作步骤_python读取csv文件
文件操作主要包括对文件内容的读写操作,这些操作是通过文件对象实现的,通过文件对象可以读写文本文件和二进制文件
全栈程序员站长
2022/09/19
1.6K0
python pandas读取csv文件_pandas将数据写入csv
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/175441.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
5.9K0
python pandas读取csv文件_pandas将数据写入csv
python pandas.read_csv参数整理,读取txt,csv文件
pandas.read_csv参数整理 读取CSV(逗号分割)文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见:http://pandas.pydata.org/pandas-docs/stable/io.html 参数: filepath_or_buffer : str,pathlib。str, pathlib.Path, py._path.local.LocalPath or any object with a read() method (such as a file handl
学到老
2018/03/16
6.4K0
Android 读取csv格式数据文件
什么是csv文件呢?百度百科上说 CSV是逗号分隔值文件格式,也有说是电子表格的,既然是电子表格,那么就可以用Excel打开,那为什么要在Android中来读取这个.csv格式的文件呢?因为现在主流数据格式是采用的JSON,但是另一种就是.csv格式的数据,这种数据通常由数据库直接提供,进行读取。下面来看看简单的使用吧
晨曦_LLW
2020/09/25
2.4K0
Python--读取csv文件的整列
上代码: #利用pandas读取csv文件 def getNames(csvfile): data = pd.read_csv(csvfile,delimiter='|') # 1--读取的文件编码问题有待考虑 names = data['EnName'] return names 读取EnName这一列
K同学啊
2019/01/22
2.9K0
python pandas.read_csv参数整理,读取txt,csv文件
更多帮助参见:http://pandas.pydata.org/pandas-docs/stable/io.html
学到老
2019/02/14
3.8K0
Java读取pkl文件_theano csv到pkl文件
my_data = genfromtxt(csvFile, delimiter=’,’, skip_header=1)
全栈程序员站长
2022/09/30
1.3K0
Python数据分析之读取文件读取CSV读取Excel读取MySQL读取MongoDB
Python的数据分析,大部分的教程都是想讲numpy,再讲Dataframe,再讲读取文件。但我看书的时候,前面二章看的实在头晕,所以,我们还是通过读取文件来开始我们的Python数据分析吧。 读取
罗罗攀
2018/07/03
5.8K0
python读取与写入csv EXCEK HDF 文件
一. 数据文件         pd指pandas简称,df指DataFrame对象。 1. csv 读取  pd.read_csv('foo.csv') 写入  df.to_csv('foo.csv') 2. HDF5 读取  pd.read_hdf('foo.h5', 'df') 写入  df.to_hdf('foo.h5', 'df') 3. Excel 读取  pd.read_excel('foo.xlsx', 'sheet1', index_col=None, na_values=['NA']) 写入  df.to_excel('foo.xlsx', sheet_name='sheet1') 二. 数据结构 1. Series         Series是一维标记数组,可以存储任意数据类型,如整型、字符串、浮点型和Python对象等,轴标一般指索引。创建Series的方法为 >>>s=Series(data, index=index) data可以是Python词典、ndarray和标量值。 2. DataFrame         DataFrame是二维标记数据结构,列可以是不同的数据类型。它是最常用的pandas对象,像Series一样可以接收多种输入:lists、dicts、series和DataFrame等。初始化对象时,除了数据还可以传index和columns这两个参数。 3. Panel         Panel很少使用,然而是很重要的三维数据容器。Panel data源于经济学,也是pan(el)-da(ta)-s的来源。在交叉分析中,坐标轴的名称略显随意 items: axis 0  代表DataFrame的item major_axis: axis 1  代表DataFrames的index(行) minor_axis: axis 2  代表DataFrames的列 4. Panel4D         Panel4D是像Panel一样的4维容器,作为N维容器的一个测试。 labels: axis 0  每个item相当于panel items: axis 1  每个item相当于DataFrame major_axis: axis 2  它是dataframe的index minor_axis: axis 3  它是dataframe的columns         Panel4D是Panel的一个子集,因此Panel的大多数方法可用于4D,但以下方法不可用:join, to_excel, to_frame, to_sparse, groupby。 5. PanelND         PanelND是一个拥有factory集合,可以创建像Panel4D一样N维命名容器的模块。
学到老
2019/02/14
1.8K0
【python】读取csv xlsx xlx txt文件 类
只需修改path class Reader: """ 可读取的文件格式: .csv .tsv .xlsx .xlx .txt """ @staticmethod def change_1d_array(array, header_cut=None, str_to_float=None): """ 为一维数组去掉第一个值;将字符串转为数值 :param array: type:<class 'numpy.ndarray'
司六米希
2022/11/15
1.1K0
python读取与写入csv EXCEK HDF 文件
一. 数据文件         pd指pandas简称,df指DataFrame对象。 1. csv 读取  pd.read_csv('foo.csv') 写入  df.to_csv('foo.csv') 2. HDF5 读取  pd.read_hdf('foo.h5', 'df') 写入  df.to_hdf('foo.h5', 'df') 3. Excel 读取  pd.read_excel('foo.xlsx', 'sheet1', index_col=None, na_values=['NA'])
学到老
2018/03/16
2.2K0

相似问题

匿名邮件发送:中继访问被拒绝

12

无法发送邮件:中继访问被拒绝

11

发送电子邮件时中继访问被拒绝

22

通过SMTP向非本地地址发送邮件时,中继访问被拒绝

11

Python -发送电子邮件时发生错误(中继访问被拒绝)

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文