单击后显示Flash消息,返回并继续浏览器按钮

时间:2018-01-03 07:40:05

标签: php laravel flash-message

我从服务器收到请求后显示了flash消息。如果用户点击同时返回并前进按钮...他再次看到相同的Flash消息,我认为这对用户来说是一个坏消息......我该如何解决这个问题?

4 个答案:

答案 0 :(得分:3)

这是因为浏览器可以帮助您使用缓存加载页面。你可以做这些

header('Cache-Control: no-store, private, no-cache, must-revalidate');
header('Cache-Control: pre-check=0, post-check=0, max-age=0, max-stale = 0', false);

<meta http-equiv="cache-control" content="max-age=0"/>
<meta http-equiv="cache-control" content="no-cache"/>
<meta http-equiv="expires" content="0"/>
<meta http-equiv="pragma" content="no-cache"/>

@if(Session::has('message'))
    <div class="alert alert-{{ Session::get('status') }} status-box">
        <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
        {{ Session::get('message') }}
    </div>
@endif 

答案 1 :(得分:1)

您可以使用JavaScript将显示的消息中的messageId存储在变量或(隐藏)输入字段中,这样您就可以检查消息是否已经显示。

答案 2 :(得分:1)

我已经通过以下代码解决了这个问题

import cv2

img = cv2.imread("D:\\testing\\test.png",1)

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
greenMask = cv2.inRange(hsv, (26, 10, 30), (97, 100, 255))

img[greenMask == 255] = (0, 255, 0)

cv2.imshow('test', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

答案 3 :(得分:1)

晚了聚会,但是上面提议的标题解决方案对我不起作用。

相反,我使用performance.getEntriesByType(受到广泛支持)来确定用户是否通过后退按钮到达页面,如果是,则从Flash消息容器中删除显示Flash消息的代码。 :

<script>
        var perfEntries = performance.getEntriesByType("navigation");
        for (var i = 0; i < perfEntries.length; i++) {
            if(perfEntries[i].type === "back_forward"){ // if user has reach the page via the back button...
                document.querySelector("#flashMessageContainer").innerHTML = ""; //...delete the contents of the flash container
            }
        }
</script>
如果用户通过单击后退或前进浏览器按钮到达页面,则

'performance.getEntriesByType(“ navigation”)'返回“ back_forward”(在我的情况下,不需要在屏幕上显示Flash消息)向前点击)。如果单击链接或提交表单导致重定向,它将返回“导航”。

归因:我从llaaalu捏了the solution