0

我使用表单 API 和 ajax 调用在 Drupal 7 中构建了一个表单。一个典型的表单项如下所示:

$form['wrapper']['step1']['currency'] = array(
  '#type' => 'radios',
    '#options' => array(
    'USD' => t('USD'),
    'GBP' => t('GBP'),
    'EUR' => t('EUR'),
  ),
  '#default_value' => (!empty($form_state['values']['currency'])) ? $form_state['values']['currency'] : 'USD',
  '#title' => t('Choose Currency'),
  '#required' => TRUE,
  '#ajax' => array(
    'callback' => 'ajax_step1',
    'wrapper' => 'step1-wrapper',
    'method' => 'replace',
    'effect' => 'fade',
    'speed' => 'fast',
  ),
);

一切都在正常工作,但即使 ajax 调用只是重建表单的一小部分,它也需要几秒钟(颤抖者正在加班:)。

这是正常的吗?

有没有办法加快速度(保持 Drupal 的方式)?

4

1 回答 1

0

当进行 ajax 调用时,它实际上会重建整个表单并只返回它的一个方面。例如,在您的函数ajax_step1中,您可能正在调用以从表单中返回某个元素,并将其显示在step1-wrapper div/wrapper 元素中。

如果要加快表单返回,则需要优化表单构建器本身。这意味着,您可能需要重写表单。

于 2013-05-28T22:45:31.223 回答