php - 当任何新数据保存或更新时向用户发送桌面通知:php、Drupal7
问题描述
如果数据库表在没有任何事件(例如页面重新加载或按钮单击)的情况下更新,我需要发送实时桌面通知。我正在寻找一些关于 php、Drupal 7 的帮助,
我已经编写了一个脚本来执行此操作,但它需要一些事件来触发桌面通知。虽然我需要一些不需要事件的东西。
任何输入都会有所帮助
解决方案
据我所知,没有实现这样的功能。尝试使用 AJAX 调用执行此操作
myModuleAjax.js
在模块中的某处循环使用 AJAX创建文件,例如。(function ($) { Drupal.behaviors.myModuleAjax = { interval: null, attach: function (context, settings) { interval = setInterval(function() { //Place where your php script will be. $.getJSON(Drupal.settings.basePath + "ajax/ajaxEventCheck.php", { //Any data you need to pass to php script. For example table name. tableToCheck: "my_table" }) .done(function(json) { //Success, got some data, notification logic here. alert("changes"); }) .fail(function(jqxhr, textStatus, error) { //Handle communication failing. }); //Check each 5 seconds. }, 5000); }, } } (jQuery));
将此脚本添加到页面
drupal_add_js(drupal_get_path('module', 'myModule') . '/js/myModuleAjax.js');
创建
ajaxEventCheck.php
将检查您的事件(表更新)并以 JSON 格式返回信息的脚本,它应该以//Your output data is in $data //End of function - send JSON data and exit. header('Content-Type: application/json'); print json_encode($data); die();
编辑:假设这个脚本在drupal之外不要使用drupal_exit()
,只需用打印的JSON结束脚本,如果你需要脚本内部的drupal功能,这更棘手,请参阅此开始
这些步骤应该允许您模拟加载页面和后端之间的持续通信。
推荐阅读
- numpy - 序列上泊松噪声实现的再现性
- powershell - 无法使用 powershell 设置 O365 许可证
- gatling - Gatling - 大型请求体并使用不同的 .json 文件作为每个会话的输入
- python - 无法使用 PyTorch 重现结果
- android - Admob :广告投放受限 - 您可以展示的广告数量受到限制。有关详细信息,请访问政策中心
- sql - (TABLOCKX) 和 (TABLOCKX, HOLDLOCK) 的区别
- spring-boot - 无法从 docker 容器内的 Spring Boot 连接到 Redis
- java - BottomNavigation 的问题 – Android 工作室
- node.js - 按猫鼬中的孙子属性过滤
- reactjs - 在路由参数更改时渲染反应类组件