【发布时间】:2013-07-02 16:20:04
【问题描述】:
这就是我正在使用的...
一些javascript(我们称之为'apples.js')是在客户端执行的,我想在该javascript中做的一件事是使用Ajax在后台运行一个php脚本。这很容易。
我正在使用的 php 脚本基于一个带有数据字段的 php 页面,并在末尾调用了一个 js 函数来保存数据。 (让我们将此另一个 js 文件称为“bananas.js”)我想通过将数据从 apples.js 传递到 php 文件来填充后台 php 文件的字段。我的困境是我的php文件最后需要在bananas.js中执行一个函数,但如果php文件在后台运行,我认为这不会起作用。显然我必须通过 onclick 以外的方法调用bananas.js 函数,但即便如此,我认为javascript 不能在后台运行。 正确吗?有没有简单的处理方法?
我猜是最坏的情况,我必须将香蕉.js 中的函数改编成 apples.js 并跳过 PHP 中间脚本。我希望我可以避免这种情况,因为我更喜欢在该软件的现有框架内工作并保持简单(我也不十分关心编程效率;该软件正在开发为我公司私人门户的一部分) .
【问题讨论】:
-
“我认为 JavaScript 不能在后台运行”——我不明白这是什么意思。 JavaScript 是基于 event 的。这里有实际的导航吗? (也就是以传统方式切换页面?)。我不确定我是否完全理解这个问题,我有点困惑。您介意详细说明程序的流程吗? (就像用户点击 x 一样,一个 ajax 被发送到...)
-
Http 的工作原理如下:您从浏览器进行请求,服务器是否返回某些内容。如果没有返回任何内容,则不会再执行客户端内容
-
当php看到
AJAX发出的请求时,你总是可以在php生成的内容的末尾添加<script>bananaFunction();</script>之类的东西。 -
其实@Benjamin,你现在可以在后台运行 JavaScript。查看网络工作者developer.mozilla.org/en-US/docs/Web/Guide/Performance/…。除此之外,mplungian 是对的。一旦您的 JavaScript 运行所服务的 PHP,它就不再运行(或不应该运行)。没有什么可以阻止你发出新的请求,但一旦你运行了调用香蕉.js 的 apples.js - 事实上我怀疑这是你应该做的。
-
@cirrus 我什么时候说过我不知道网络工作者的事情?我只是说我不明白 OP 在这里是什么意思,或者他想要完成什么。 (如果您查看我的个人资料,顺便说一下,我有 几个 使用网络工作者的答案)
标签: php javascript ajax background server-side