It will depend on each specific situation. I myself often use the first way because it will generate only one request to server (updating record only) while the second way will generate two requests (updating record and loading grid data).
Yes. I often reduce the volume of transfered data by:
- With creating request, I return success response with only id of newly created record, not the whole record, e.g {success: true, root: [{id: <ID of new record>}]}. This is used to update the id of newly created record in the grid.
- With updating request, I return success respone with no data, e.g {success: true}.