Javascript 我应该如何处理跨多个页面重用的ajaxget函数?
我有一个具有预订/预订功能的web应用程序。我的一个核心功能是检查一个预订是否与其他预订冲突,此功能用于多个页面。它的返回数据通常不与页面一起加载,因为它的请求参数取决于用户输入。换言之:Javascript 我应该如何处理跨多个页面重用的ajaxget函数?,javascript,ajax,Javascript,Ajax,我有一个具有预订/预订功能的web应用程序。我的一个核心功能是检查一个预订是否与其他预订冲突,此功能用于多个页面。它的返回数据通常不与页面一起加载,因为它的请求参数取决于用户输入。换言之: 我有一个ajax函数,可以获取预订数据 为了重用,它被抽象为自己的.js文件 ajax函数封装在javascript函数中 但是,ajax函数不适合我的预期用途。由于其异步性质,在ajax调用完成之前,包装器函数将不返回任何内容。如果我需要使用返回的数据执行某些操作,它应该在ajax调用的success函
- 我有一个ajax函数,可以获取预订数据
- 为了重用,它被抽象为自己的.js文件
- ajax函数封装在javascript函数中
老实说,我真的看不出这两个解决方案中有哪一个是赢家。非常感谢您的帮助。我建议使用基于事件的方法。 在ajaxsuccess中,您可以触发(触发)一个事件,例如
bookingcheckcomplete
,并且特定的页面按照它需要的方式处理事件
通过这种方式,您可以很好地利用ajax的优势—异步,并保持页面的解耦
对于这样的使用,我使用jQuery事件机制,但也有其他可用的库。看看这里-
例如,在第一页中,您有:
$( document ).on( "booking-check-complete", function( event, param1, param2 ) {
alert( "Hello from page 1" );
});
$( document ).on( "booking-check-complete", function( event, param1, param2 ) {
alert( "Hello from page 2" );
});
在第二页,您有:
$( document ).on( "booking-check-complete", function( event, param1, param2 ) {
alert( "Hello from page 1" );
});
$( document ).on( "booking-check-complete", function( event, param1, param2 ) {
alert( "Hello from page 2" );
});
在ajax成功中:
$( document ).trigger( "booking-check-complete", [ "Custom", "Event" ] );
注意
您不需要jQuery来使用所描述的事件
这使用普通javascript,但与IE不兼容
var event = new Event('build');
// Listen for the event.
elem.addEventListener('build', function (e) { ... }, false);
// Dispatch the event.
elem.dispatchEvent(event);
选项2是杰出的赢家。不错!我至少对jquery有中等熟练程度,因此这将很好地工作。我想我也可以使用变量将特定触发器传递给jquery函数,使其完全动态。这是我的获奖答案,但我想确保在绿化它之前,我能让它工作:)。是的,你可以向活动传递参数。在本例中,param1将是字符串“Custom”,param2将是“Event”。如果在项目中不使用jQuery,则可以考虑添加一个更轻的库,该库在不需要开销的情况下也能做到这一点。干杯我确实扩展使用jquery;)。我们赢了!我已经成功了。将正确返回预订,并触发事件。现在我只需要迭代它们,并正确地显示它们。谢谢你,好先生,你帮了大忙!作为一名开发者,我今天取得了进步!。。。当我在前面谈到变量时,我指的是
var event_to_trigger=“booking check complete”
,然后调用$(文档)代码>。这也有效;)很高兴听到这个消息!事件是一个强大的工具。我在整个站点上专门使用了一个通用的js结构,其中包含类似的常量,并调用Events.BookingComplete,而不是“bookingcheckcomplete”。通过这种方式,我知道所有宣布的事件都在一个地方。伟大、具体和简短的回答。有活动的那个似乎也很有希望。我现在需要测试选项:)