如何使用js-cookie

时间:2018-12-19 17:35:53

标签: javascript laravel laravel-5.6

以前,我的英语不是我的母语,所以...对所有拼写/错别字和其他内容感到抱歉。

我正在该网站上工作,它需要向所有用户展示宣传视频(它必须是模式的)。条件如下:

促销视频需要显示在网站的任何页面上。

如果用户看到了促销,则将在一周后再次显示给同一用户(如果促销仍处于活动状态)。

如果促销视频被另一个促销视频删除,则必须显示新的促销视频(例如:如果用户访问该网站并在第一天和第三天看到该促销,则该促销视频被删除或过期,而另一个宣传其设置,如果在一周过去后再次访问该网站,则需要向该用户显示该信息。

我当时正在考虑使用Laravel Cookie,但被告知使用它们不是一个好习惯。如果是这样,为什么?

现在,该应用程序正在使用js-cookie,并使用该cookie设置了一些cookie。可以完成我想要的吗?

这是我代码的一部分

在ViewServiceProvider.php上,我有这个

public function boot()
{
    View::composer('layouts.partials.modals', PromotionalVideoComposer::class);

}

在PromotionalVideoComposer.php上

public function compose(View $view)
{
    $view->with('promotionalVideo', PromotionalVideo::active()->pluck('link')->first());
}

在partiasl.modals.blade.php

// some modals

<!-- Modal Promotional Video -->
@if (isset($promotionalVideo))
    <div class="modal fade modal-player" id="promotional-video" role="dialog" tabindex="-1">
        <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close" dusk="close-promotional-video"><span aria-hidden="true">&times;</span></button>
                    <div class="modal-body player-container">
                        <iframe src="{{ $promotionalVideo }}" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
                    </div>
                </div><!-- .modal-header -->
            </div><!-- .modal-content -->
        </div><!-- .modal-dialog modal-lg -->
    </div><!-- .modal fade -->
@endif

和app.js

if (Cookie.get('promotionalVideoDisplayed') === undefined) {
    $('#promotional-video').modal('show');
    Cookie.set('promotionalVideoDisplayed', true, { expires: 7 });
}

// On close video modal stop/delete video iframe
$("#promotional-video").on('hidden.bs.modal', function () {
    var $iframe = "#promotional-video iframe";

    $($iframe).remove();
});

1 个答案:

答案 0 :(得分:0)

我建议您不要为“用户ID”,“促销ID”和“上次查看”日期添加数据库条目,而不是使用Cookie(可以删除或不设置Cookie以便多次显示同一视频)。

然后从中读取内容,以决定是否显示视频。